Lucky Number Slevin

During the film's opening credits, two bookies are separately ambushed and murdered by their unseen killers; elsewhere, a young man is killed by a sniper. In a bus terminal, a young man is approached by Goodkat (Bruce Willis), who tells the story of Max and the Kansas City Shuffle: two decades earlier, Max borrowed money from the mob to bet on a fixed horse race, only for the horse to die mid-race. To set an example to make sure nobody else would try to bet on a fixed race, the mob killed Max, his wife and young son Henry. Goodkat concludes that a "Kansas City Shuffle" is a misleading double bluff, and so tricks and kills the young man, before loading his body into a truck.
In New York City, Slevin Kelevra (Josh Hartnett) is staying in his friend Nick Fisher's apartment and, upon being visited by Nick's neighbor Lindsey (Lucy Liu), discusses Nick's disappearance and why his apartment was unlocked. Lindsey suggests that Nick may be missing and, after she leaves, Slevin is kidnapped by two henchmen, who take him to "The Boss" (Morgan Freeman). Mistaking Slevin for Nick, The Boss orders him to repay a large gambling debt or kill the son of his rival, "The Rabbi" (Ben Kingsley); The Boss believes The Rabbi is responsible for assassinating his son (seen in the intro), and wants The Rabbi's homosexual son, Yitzchok "The Fairy", to be killed in revenge. Slevin then returns to the apartment, but is kidnapped again by two Jewish henchmen working for The Rabbi. The Rabbi also mistakes Slevin for Nick, and also demands he repay a large gambling debt. Slevin returns to The Boss and agrees to kill The Fairy. Concurrently with Slevin visiting the mob bosses, it becomes apparent Goodkat is involved in both sides and is responsible for Nick's debts being called in, and he plans to kill Slevin after The Fairy dies and make it look like they were both killed by a jealous lover (though Goodkat's motivations as to why remain unknown).
Slevin and Lindsey go out to dinner, where Slevin arranges a date with The Fairy. Slevin is approached by Detective Brikowski (Stanley Tucci), who is investigating The Boss and The Rabbi. The detective hassles him again later and Slevin reveals his full name. Slevin arrives at The Fairy's apartment and fatally shoots him, only for Goodkat to appear; rather than shoot Slevin, however, he finishes The Fairy, who pulls out a gun, revealing Slevin and Goodkat are affiliated. Slevin then brings the bus terminal victim's body, revealed to be Nick Fisher, into the apartment while Goodkat kills The Fairy's bodyguards. Together they blow up the apartment and the bodies, faking Slevin's death in the process. Goodkat and Slevin kidnap The Boss and The Rabbi, with both awakening restrained in The Boss's penthouse. Slevin appears and explains the overarching twist: Slevin is Henry, the son of the ill-fated Max, and the mobsters who killed Max were The Boss and The Rabbi. Goodkat is revealed as the assassin hired to kill young Henry, who after an attack of conscience took him in and raised him instead.
Twenty years later, Goodkat and Slevin killed The Boss' son and both mobsters' bookies, stealing the bookies' ledgers in the process. After finding Nick Fisher owed a great deal of money to both sides, they killed him and stole his identity. As gang warfare loomed, both mobsters went to Goodkat, who agreed to both kill and protect The Fairy on the condition they call in Nick's debts, granting Slevin and Goodkat unhindered access to the heavily guarded mobsters and Nick Fisher as an ally respectively. After revealing his plan, Slevin suffocates The Rabbi and The Boss by taping plastic bags over their heads, killing them the same way they killed his father. Since Lindsey earlier photographed Goodkat for Slevin, Goodkat shoots her to protect his identity. Finally, it is revealed that Detective Brikowski killed Slevin's mother when his own gambling debts were called in by the mobsters; Slevin kills Brikowski as the pseudonym "Slevin Kelevra" is explained: "Lucky Number Slevin" was the horse his father had bet on, and "Kelevra" is Hebrew for "bad dog," mirroring Goodkat's name.
Sometime later at the bus terminal, Slevin is met by Lindsey, and it is revealed that Slevin, aware of Goodkat's intentions, explained his true identity to her and helped fake her death. Goodkat appears, aware of the trickery; since Goodkat spared Slevin as a boy, he sympathizes and agrees to let her live. The film closes with a flashback to Goodkat deciding not to kill Henry; "Kansas City Shuffle" by Bennie Moten (Performed by J. Ralph) starts playing on the radio as they drive away together.

Question: Who killed The Boss' son?
Answer: Goodkat and Slevin