Robert Ford (Casey Affleck) seeks out Jesse James (Brad Pitt) when the James gang is planning a train robbery in Blue Cut, Missouri, making petty, unsuccessful attempts to join the gang with the help of his brother Charley (Sam Rockwell), already a member of the James gang. The train turns out to be carrying only a fraction of the money originally thought, and Frank James (Sam Shepard) informs Charley Ford that the robbery would be the last the James brothers would commit, and that the gang had "gave up their nightridin' for good". Jesse returns home to Kansas City, bringing the Fords, Dick Liddil (Paul Schneider) and his cousin, Wood Hite (Jeremy Renner). Jesse sends Charley, Wood and Dick away, but insists that Bob stay, leading Bob to believe Jesse has taken a shine to him. It transpires that Jesse only required Bob to stay to assist him moving his furniture to a new home. Jesse then allows him to stay with the James family for a few extra days. Bob spends these days obsessing over Jesse, before being sent away to return to his sister's farmhouse and rejoin Wood, Dick and Charley.
Dick Liddil reveals to Bob that he is in collusion with another member of the James gang, Jim Cummins, to capture Jesse for a substantial bounty. Meanwhile, Jesse visits another gang member, Ed Miller (Garret Dillahunt), who unwittingly gives away information on Cummins' plot. Jesse kills Miller, then departs with Dick Liddil to hunt down Jim Cummins. Unable to locate Jim, Jesse viciously beats Albert Ford (Jesse Frechette), a young cousin of Bob and Charley. Dick returns to the Boltons' farmhouse, and is involved in a dispute with Wood Hite, ending in Wood's death at the hands of Robert Ford. Hite's body is dumped in the woods, in an effort to conceal this from Jesse.
Jesse and Charley Ford travel to St. Joseph, Missouri, and Jesse learns of Wood's disappearance, which Charley denies knowing anything about. Meanwhile, Bob approaches Kansas City police commissioner, Henry Craig (Michael Parks), revealing that he has information regarding Jesse James's whereabouts. To prove his allegiance with the James gang, Bob urges Craig to arrest Dick Liddil. Following Dick's arrest, and subsequent confession to his involvement in numerous James gang robberies, Bob brokers a deal with the Governor of Missouri, Thomas T. Crittenden (James Carville), in which he is given 10 days to capture or kill Jesse James.
After being persuaded by Charley, Jesse agrees to take Bob into the gang, and the Ford brothers travel to Jesse's home in St. Joseph, to stay with him, his wife Zee (Mary-Louise Parker), and their two children. Jesse plans numerous robberies with the Fords, beginning with the Platte City bank. On the morning of 3 April 1882, Jesse and the Ford brothers prepare to depart for the Platte City robbery. After reading the morning newspaper, Jesse learns of the arrest and confessions of Dick Liddil. The Fords excuse themselves into the living room, and put on their gun holsters. Jesse removes his own gun belt, lest he look suspicious to the neighbours, and climbs a chair to clean a dusty picture. Robert Ford shoots Jesse James in the back of the head, and the Ford brothers flee the James household, sending a telegram to the Governor to announce Jesse's killing, for which they receive $10,000.
After the assassination, the Fords become celebrities with a theater show in Manhattan, re-enacting the assassination with Bob playing himself, and Charley as Jesse James. Guilt-stricken, Charley pens numerous letters to Zee James asking for her forgiveness, none of which he mails. Overwhelmed with despair, Charles Ford commits suicide in May 1884. On June 8, 1892, Bob is sought out and murdered by a man named Edward O'Kelley (Michael Copeman), while working as a saloonkeeper in Creede, Colorado. Despite O'Kelley being ordered to serve a life sentence in prison, Colorado Governor James Bradley Orman pardoned him in 1902.