Two bookies are separately ambushed and murdered by unseen killers. In a bus terminal, a young man is approached by Goodkat, 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 his young son Henry. Goodkat describes the "Kansas City Shuffle", a misleading double bluff, then tricks and kills the young man, taking the body in a truck.
In New York City, Slevin Kelevra is staying in his friend Nick Fisher's apartment and, upon being visited by Nick's neighbor Lindsey, discusses Nick's disappearance and why his apartment was unlocked. Lindsey suggests that Nick might be missing and, after she leaves, Slevin is kidnapped by two henchmen, who take him to "The Boss". Mistaking Slevin for Nick, The Boss orders him to repay a large gambling debt or kill the son of his rival, "The Rabbi"; 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 returns to the apartment, but is kidnapped again, this time by two of The Rabbi's Jewish henchmen. Like The Boss, The Rabbi also mistakes Slevin for Nick, and also demands he repay a large gambling debt. Slevin tells The Boss he will kill Yitzchok. Concurrently with Slevin visiting the mob bosses, it becomes apparent Goodkat is somehow involved in both sides and is responsible for Nick's debts being called in, and that he plans to kill Slevin after Yitzchok dies and make it look like they both committed suicide.
Slevin is approached by Detective Brikowski, who is investigating The Boss and The Rabbi. Brikowski has also been informed that Goodkat is back in town for the first time in twenty years and thinks there is a connection between The Boss, The Rabbi, Goodkat, and Slevin. After pretending to be gay, Slevin gets invited to Yitzchok's apartment, where he and Goodkat kill Yitzchok and his bodyguards. The two then kidnap The Boss and The Rabbi, with both waking up 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. After revealing his identity, 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 while investigating Nick's disappearance, Goodkat shoots her to protect his identity.
While Brikowski is hunting for Slevin he gets a phone call from his boss and learns the meaning of the pseudonym Slevin Kelevra: "Lucky Number Slevin" was the horse his father had bet on, and "Kelevra" is Hebrew for bad dog, mirroring Goodkat's name. It is revealed that Brikowski murdered Slevin's mother to pay his own gambling debts twenty years ago. As he hears this story Brikowski resigns himself to his fate as Slevin, showing rage for the first time, appears in Brikowski's backseat and shoots him.
Some time later at the bus terminal Slevin is met by Lindsey, and it is revealed that Goodkat informed Slevin that he had to murder Lindsey because she had a picture of him. However, Slevin explained his true identity to Lindsey and helped fake her death. When Goodkat appears, aware of the deception, Slevin explains he had to save Lindsey and did not think Goodkat would understand. Since Goodkat had saved Slevin as a boy he states that he understands and agrees to leave Lindsey alone. Goodkat gives Slevin back his father's old watch and then disappears into the crowd. The movie flashes back twenty years to when Goodkat first spared young Henry, they drive away and Goodkat turns on the radio to a song titled "Kansas City Shuffle".
Josh Hartnett as Slevin Kelevra / Henry
Bruce Willis as Mr. Goodkat / Smith
Lucy Liu as Lindsey
Morgan Freeman as The Boss
Ben Kingsley as The Rabbi
Stanley Tucci as Detective Brikowski
Michael Rubenfeld as Yitzchak / The Fairy
Peter Outerbridge as Detective Dumbrowski
Kevin Chamberlin as Marty
Dorian Missick as Elvis
Mykelti Williamson as Sloe
Scott Gibson as Max
Sam Jaeger as Nick Fisher
Danny Aiello as Roth
Corey Stoll as Saul
Rami Posner as The Mute
Robert Forster as Murphy
Jennifer Miller as Kelly