Sullivan tracks down Al Capone's accountant to an up-market hotel, and holds him at gunpoint to get details of his accounts to make some cash quickly - but it's a trap. Maguire (Jude Law), the assassin hired by Capone, is waiting outside. When Maguire sees Sullivan behind the curtains he enters the hotel. Little Michael Sullivan Jnr blasts the car honk, but it can't be heard over the morse code reader.
Maguire enters and there's a shootout. Sullivan hides behind a metal chest, the accountant is killed, but Sullivan shoots a glass/crystal decoration that embeds the glass shards into Maguire's face. Sullivan makes a quick getaway, but with a gunshot in the arm. Michael Jnr takes his father to a farm, where an elderly couple care for them. A little bored, Sullivan reads the account books, and finds out that Rooney's son has been stealing money from his old man. When Sullivan is healthier they leave, with a bag of cash left behind as a thankyou present.
Sullivan meets Rooney in church to tell him about his dodgy son Connor, but Rooney doesn't want to hear it. Out in the street, Sullivan takes out Rooney's bodyguards with a submachine gun, but slowly approaching and taking care of old Rooney.
Frank Nitti then contacts Sullivan on behalf of Capone, and tells him where to find Connor. Sullivan calls round the hotel, and shoots him dead.
Now that it's all over, both Sullivans travel to a beach house (in a place called Perdition) belonging to a relative, but Maguire is in waiting and shoots Sullivan while Michael Jnr plays outside. He gets his camera ready, as that's just his thing.
Michael Jnr approaches with a gun aimed on Maguire. Maguire walks towards him, allowing time for Sullivan to pull the trigger and kill the hit man. Sullivan dies.
Michael Jnr then takes off in the car and returns to the elderly couple, to live a life away from the crime world.