Michael Sullivan Sr., is an enforcer to John Rooney, an Irish-American crime boss in Illinois during the Great Depression. Sullivan, an orphan raised by Rooney, has worked for the crime boss most of his life. Sullivan and Rooney's son, Connor, are sent by Rooney to talk to Finn McGovern, a disgruntled employee. Sullivan's son, twelve-year-old Michael Sullivan Jr., stows away in his father's car, attempting to learn more about his enigmatic father's ambiguous profession. He witnesses Connor's impulsive killing of McGovern, and is soon after discovered by his father and Connor. Although Sullivan Sr. swears that his son will tell no-one, Connor attempts to ensure his own protection by attempting to have Sullivan Sr. killed, while murdering the rest of Sullivan's family himself. Connor kills Sullivan's wife, Annie, and younger son, Peter; Sullivan Sr. and his son, Michael Sullivan Jr., escape with their lives and flee to Chicago.
Sullivan requests assistance from a Lieutenant in Al Capone's crime syndicate, Frank Nitti, in order to get revenge on Connor, but when he is rejected, Sullivan and his son begin a string of mob-owned bank robberies in order to steal the syndicate's laundered money. Sullivan hopes to coerce Capone into giving Connor up for the money, but instead Capone dispatches assassin Harlen Maguire to kill Sullivan and his son. Maguire sets up a trap for Sullivan with the aid of Rooney's accountant, Alexander Rance. Sullivan arrives at Rance's hotel room, seeking assistance, and Rance stalls him long enough for Maguire to arrive at his room. Rance is killed in the crossfire of the ensuing gunfight, but Sullivan escapes with a bullet wound in his left arm. Maguire escapes as well, though his face is left disfigured from a debris wound. Sullivan Jr. takes his father to a farm in the country where a childless, elderly couple takes the two of them in. During his recuperation, Sullivan finds in ledgers taken from Rance's hotel room that Connor had been embezzling money from his father under the names of gang members that he had murdered.
When Sullivan Sr. recovers, he secretly meets with John Rooney during Mass and shares his discovery about Connor. Rooney not only reveals that he has been aware of Connor's treachery all along, but remains adamant in his refusal to let his son be harmed. Sullivan Sr. ambushes John Rooney and his bodyguards in the street, picking them off with his Thompson submachine gun from an alley before approaching Rooney face to face. Rooney says, "I'm glad it's you" before Sullivan Sr. tearfully unloads the last of his ammunition into him. With Rooney dead, Capone is bereft of any reason to protect Connor. Capone uses Frank Nitti as a middleman as he gives Sullivan Sr. Connor's exact location, on the condition that Sullivan Sr. gives his word that his spree will end with Connor's death. Sullivan Sr. leaves a letter for his son before going to the hotel at which Connor is staying. Connor's bodyguards allow him straight, unhindered passage to Connor, who is bathing in his room. Sullivan Sr., saying nothing, draws his pistol and fires three rounds into Connor's head, then leaves. Apparently free from pursuit, Sullivan and his son make their way to the town of Perdition, Michigan. A disfigured Maguire surprises Michael Sullivan Sr. in the summer house of Sarah (Annie's sister). Maguire shoots Sullivan Sr. from behind. He sets his gun on a table behind him and begins setting up his camera to take a picture of the dying Sullivan Sr., in accordance to his MO. However, Maguire soon finds himself at gunpoint by Sullivan's son with his own weapon. Maguire attempts to convince Sullivan Jr. to discard the weapon, and Sullivan Sr. pleads with his son not to fire, thereby following his father's path, which had always been his greatest fear. Sullivan Sr. shoots Maguire from behind before his son can pull the trigger, then dies in Sullivan Jr.'s arms. Sullivan Jr. mourns his father's death and finds his way to the same elderly couple that had helped him and his father, assuming the life of a farmer's son.