Eight years after the vigilante MacManus brothers, Conner (Sean Patrick Flanery) and Murphy (Norman Reedus), and their father Noah (Billy Connolly) assassinated Papa Joe Yakavetta (Carlo Rota), they have been hiding out in Ireland. One day, their uncle Sibeal arrives at their cottage to inform them that a renowned Boston priest was murdered by a mysterious assassin who attempted to frame The Saints by using their same ritual assassination style. In response, the brothers dig up their old gear and weapons, and depart back to Boston, USA.
En route aboard a container ship, they meet a Mexican underground fighter named Romeo (Clifton Collins), who recognizes them as The Saints. Romeo convinces them to let him join them as their new partner. Hearing a radio broadcast regarding Papa Joe's son, Concezio Yakavetta (Judd Nelson), they deduce that he hired the hit-man who killed the priest in order to draw them out of hiding.
Meanwhile in Boston, Detectives Dolly (David Ferry), Duffy (Brian Mahoney), and Greenly (Bob Marley) are at the scene of the priest's murder. They are greeted by FBI Special Agent Eunice Bloom (Julie Benz), the protege of Paul Smecker (who died a few years ago), and investigator to the priest's death. The Southern-accented streetwise Bloom and the other detectives deduce that it was not The Saints who murdered him, beginning an investigation to find the real assassin. They later find the assassins name is Ottilio Panza (Daniel DeSanto), who appears to be working for a mysterious old man named "The Roman" (Peter Fonda).
Conner, Murphy, and Romeo hit a warehouse that is being used by an Asian gang to process heroin for Yakavetta. After killing everyone at the warehouse, Connor and Murphy reunite with their old bartender friend, Doc (Gerard Parkes). They learn that the assassin who killed the priest was an independent contractor and not a part of Yakavetta's crew, and that Yakavetta himself is hiding in the Prudential Tower. Later at the warehouse, now a crime scene, Bloom asserts that The Saints have returned.
The MacManus brothers and Romeo have one of Yakavetta's underbosses set up a meeting with a group of mobsters at a bar, where they kill them. Panza arrives shortly after and attempts to ambush the brothers, but Bloom arrives in time to save them by wounding Panza, who flees. Bloom introduces herself, revealing her intentions to help The Saints. The group then cleans up the crime scene to make it look as if the mobsters had turned on each other. Later, Bloom reunites the other detectives with The Saints, thus bringing them in on their plans.
A little later, Yakavetta calls a meeting with his crew, during which, The Saints arrive and kill everyone including Yakavetta. Bloom interrogates Yakavetta's right hand man, learning of The Romans involvement with Panza. Later at the bar, Greenly arrives to celebrate the boys' victory and is unexpectedly shot and killed by Panza. Noah, earlier having decided to help his sons, unexpectedly arrives to demand Panza tell him The Roman's location. They engage in a type of "Russian roulette" stand-off, and after Panza still refuses to answer, Noah kills him.
Meanwhile, Noah reveals to the group that he has known The Roman since he was a young man. In 1950s New York, Noah watched a trio of mobsters brutally murder his father in front of his eyes. Consumed with anger and wanting revenge, Noah killed the mobsters with the help of his best friend Louie, who is revealed to be The Roman. Noah still felt unsatisfied, so Louie helped him pick out mobsters to kill. They continued this until 1975, when Louie gave Noah up to the police.
Bloom illegally obtains a file regarding Louie's location in York, Maine and gives it to Noah. Louie, anticipating The Saints arrival at his mansion, has several hitmen stationed on the grounds. When Noah arrives, Louie reveals that he only used Noah to eliminate the competition in the mafia, afterwards giving him up to the police when he was done. After this, however, the mafia cast him out. He then helped rebuild the Yakavetta family after Papa Joe's demise, and let The Saints take out the rest of the mafia so Louie could take control. Louie signals the hitmen waiting to take out The Saints to make their move, but The Saints kill them all. Noah suffers a fatal gunshot wound, and with his last breath, he kills Louie. The police arrive and arrest the wounded Connor, Murphy, and Romeo.
A few days later, a disguised Bloom meets with Uncle Sibeal, who has arranged to take her to a safe place out of the country to flee FBI prosecution. It is then revealed that Paul Smecker (William Dafoe) is alive, having faked his death and developed a network of support for The Saints and their work. He then tells Bloom his plans to break The Saints out of prison. Bloom is happy to help out.
As protesters outside of the prison shout for the freedom of The Saints, the wounded Conner and Murphy stare out of their window at the sea of prisoners in the yard, finding that they'll have plenty of work while they wait to be freed.