Lorenzo "Shakes" Carcaterra, Tommy Marcano, Michael Sullivan, and John Reilly are childhood friends living in Hell's Kitchen in the 1960s. Father "Bobby" Carillo, their parish priest, a youth offender himself in the past, tries to teach them right from wrong. They still play pranks and start running small errands for local gangster King Benny.
In the summer of 1967, the four boys steal a hotdog cart, which they accidentally roll down the subway stairs, severely injuring an elderly man. They are sentenced to 18 months at the Wilkinson Home for Boys in Upstate New York. During their stay, they are constantly subjected to sexual abuse and torture by head guards Sean Nokes, Henry Addison, Ralph Ferguson and Adam Styler.
While at the facility, they participate in Wilkinson's annual football game between the guards and inmates. Michael convinces black inmate Rizzo Robinson to help win the game. Humiliated, the guards move the boys to solitary confinement for weeks, where they are systematically beaten. Rizzo does not survive and his family is told that he had died of pneumonia.
In the spring of 1968, shortly before Shakes' release from Wilkinson, he suggests they publicly report the abuse. They refuse, as Michael asserts that no one would believe them, and they vow never to speak of it again. The night before Shakes is released, Nokes and the other guards arrange a "farewell party" in which the four boys are again brutally abused.
In 1981, John and Tommy are career criminals, unexpectedly encountering Sean Nokes in a Hell's Kitchen pub. Confronting him, he dismisses the abuse he put them through. John and Tommy shoot him dead in front of witnesses. Michael, now an assistant district attorney, gets himself assigned to the case; he secretly intends to botch the prosecution and expose what the guards at Wilkinson's did. With Shakes, now a reporter, they form a plan to free John and Tommy and get revenge on the other Wilkinson abusers. With the help of King Benny and Carol, their childhood friend, they carry out their plan using information compiled by Michael on the backgrounds of the guards, helped by Danny Snyder, an alcoholic lawyer, to defend John and Tommy.
Michael secretly drafts scripted questions in advance, so Snyder casts significant doubt on the testimony of a woman who witnessed the murder, and two other witnesses are intimidated into silence. For Michael's plan to fully succeed, however, he must damage Nokes' reputation and convincingly place John and Tommy at another location at the time of the shooting. Ferguson, when called as a witness, admits that Nokes, like the other guards, used to abuse the boys. To clinch the case, however, a key witness was still needed for John and Tommy's alibi. Shakes has a long talk with Father Bobby, who resists at first, but after learning the truth, reluctantly agrees to perjure himself. At trial, Father Bobby testifies John and Tommy were with him at a New York Knicks game at the time of the shooting and shows three ticket stubs to prove it. As a result, John and Tommy are acquitted.
The remaining guards are also punished for their crimes: Henry Addison, now a politician who still molests children, is abducted and killed near the local airport by gangsters led by Rizzo's brother "Little Caesar" Robinson, who heard the truth from King Benny; Adam Styler, now a corrupt police officer, is imprisoned for taking bribes and murdering a drug dealer.
Michael, "Shakes", John, Tommy, and Carol meet at a local bar to celebrate. It is the last time the four are together. "Shakes" remains in Hell's Kitchen as a reporter; Michael quits the DA's office, moves to the English countryside, becomes a carpenter and never marries; John and Tommy both die before 30 - John succumbs to liver cirrhosis while Tommy is ambushed and murdered by rival criminals. Carol remains in Hell's Kitchen as a social worker; she has a son, naming him John Thomas Michael Martinez, nicknamed "Shakes".
Billy Crudup as Tommy Marcano
Jonathan Tucker as Young Tommy Marcano
Ron Eldard as John Riley
Geoffrey Wigdor as Young John Riley
Jason Patric as Lorenzo 'Shakes' Carcaterra
Joe Perrino as Young Shakes
Brad Pitt as Michael Sullivan
Brad Renfro as Young Michael Sullivan
Kevin Bacon as Sean Nokes
Robert De Niro as Father Bobby Carillo
Minnie Driver as Carol Martinez
Monica Polito as Young Carol Martinez
Vittorio Gassman as Benny 'King Benny'
Dustin Hoffman as Danny Snyder
Terry Kinney as Ralph Ferguson
Peter McRobbie as lawyer
Bruno Kirby as Shakes' father
Frank Medrano as 'Fat' Mancho
Eugene Byrd as Rizzo Robinson
Jeffrey Donovan as Henry Addison
Wendell Pierce as Eddie 'Little Caesar' Robinson
Aida Turturro as Mrs. Salinas
Dash Mihok as K.C.
Angela Rago as Shakes' mother
based on Lorenzo Carcaterra's 1995 book of the same name