Rio Cutler (Jake Schur) explains that he killed his father one night when his father drunkenly beat his mother to death. His uncle Grant Cutler (Chris Pratt) hears the gunshot and comes into the house. Furious at his brother’s murder, he attacks Rio. Rio stabs him in the face with a shard of glass and he and his sister Sara (Leila George) escape. She steals a horse and they take shelter in a shack they find; they intend to meet their mother’s friend in Santa Fe.
When they wake, they are greeted by Billy the Kid (Dane DeHaan) and his gang. Rio shows Billy a picture of his mother and Billy reveals that he also killed his father in defense of his mother. When one of the gang goes outside to check on the horses, Sheriff Pat Garrett (Ethan Hawke) and his officers shoot him. A gunfight ensues in which Billy tries to lasso his horse to escape, but Garrett shoots the horse and takes them prisoner. Sara tells Rio not to go outside, because he will be hanged if he reveals he killed their father. Seeing this as a chance to get safely to Santa Fe, Rio runs outside; he and Sara tell Garrett that their mother died and they were separated from their father while they all traveled to Santa Fe. Garrett seems suspicious but takes them along.
They stop at a ranch inhabited by Mexicans where they leave the body of the man they shot. Billy sees his lover and promises to return. While Billy antagonizes Garrett during dinner, Rio slips him some butter and he escapes from his shackles, threatening to kill a deputy. Garrett produces a gun and threatens one of his gang, and the situation is defused. Later, Garrett tells Rio about the first man he killed and asks him if he has anything he wants to tell him, but Rio says no.
When they get to Santa Fe, the sheriff (Vincent D’Onofrio) insists on taking Billy in addition to Dave, another member of Billy’s gang. Sensing hostility, Garrett commandeers a stagecoach and hastily leaves town. Rio and Sara slip away and find their mother’s friend in a dance hall. They have been set up by Grant, who ambushes them. He tells them their mother was also a whore, and for killing his brother he’s taking Sara as his whore. He turns Rio out on the street and takes Sara. Rio sees Dave about to be hanged and takes a letter from Billy, which claims Billy knows where his sister is. Rio gets a gun and goes to the jail to visit Billy, but a deputy turns him away. To get into the jail, Rio half-heartedly robs a bank and is shot by another deputy. In jail, Rio and Billy plot to escape. Garrett once again asks Rio if he has anything to tell him, and he again says no.
Billy escapes by attacking his guard during a trip to the outhouse; when the guard runs, Billy shoots him. He gets the keys to his shackles and frees Rio. They take a horse and return to the Mexican ranch; Billy promises to help find his sister. At the ranch, Billy finds out his lover is pregnant and ignores Rio’s pleads to help with his sister. Garrett catches up with Billy at the ranch and kills him. Realizing Billy could not have helped him, Rio tells Garrett the truth about his father and his sister. They go to a whorehouse and Rio looks for Sara while Garrett encounters Grant. Grant tells Garrett about a time he saw his brother engaging in incest; when he told his father, he beat him harshly and told him to keep his mouth shut. Rio emerges with Sara and Grant ends up taking Rio; Garrett fights a man who raped Sara but Sara shoots him.
Garrett chases Grant outside and he threatens to kill Rio if he isn’t let go. Garrett tells Grant that witnesses will attest to how he ran off like a coward. Grant says they know it isn’t true, but Garrett says only the story they tell matters, not the truth. Garrett challenges Grant to a fair gunfight, which he accepts. Sara emerges from the saloon suddenly, distracting Garrett. Grant makes his move but Rio shoots him in the head. As Sara and Rio ride off from Santa Fe, he encourages her to be strong as she once did for him.