Victor (Colin Farrell) has infiltrated the criminal empire run by ruthless kingpin Alphonse Hoyt (Terrence Howard), with the objective of making Alphonse pay for killing his wife two years earlier to prevent a trial after his men also accidentally killed Victor's daughter. Victor watches and is watched by Beatrice (Noomi Rapace), a mysterious young woman who lives in the apartment across from his with her mother. Beatrice begins to contact Victor and show interest in him, and on their first date she reveals her true intentions: Beatrice has a video of Victor killing a man and wishes for him to kill a drunk driver who disfigured her through a car collision, otherwise she will contact the police.
Meanwhile, Alphonse is receiving threats against his life and during a shoot-out with Jamaicans whom he believes responsible, Victor saves his life and thus gains his trust. As the threats become greater, a man within Alphonse's crew and a friend of Victor's, Darcy (Dominic Cooper), investigates the source of the threats. Victor has also kidnapped the brother of Albanian kingpin Ilir (James Biberi), who was involved in helping Alphonse dispose of Victor's family. His plan is to pit the Albanians and Alphonse's men together so he can eliminate them more easily.
Darcy eventually determines that the man threatening Alphonse and who kidnapped Ilir's brother may be a Hungarian named Laszlo Kerick, the man they believe they killed along with his family, and who is Victor, having changed his name to avoid suspicion from anyone in Alphonse's crew. Victor attempts to kill Alphonse with a sniper rifle while he's in a restaurant one day but is unsuccessful. Victor manages to escape Alphonse's men in pursuit, killing some of them in the process. Beatrice, who has been following Victor still, then appears in her car to hide him from the men.
Victor makes a video tape of Ilir's brother revealing that he is being held by Alphonse by tricking him and then allows sewer rats to eat him, but has a change of heart and shoots him to put him quickly out of his misery. Beatrice is given the tape to mail to Ilir in order to make it seem like Alphonse betrayed him and kidnapped his brother. Alphonse, now knowing the threats are coming from someone within his crew, sets a trap so that whomever shows up at a safe house to speak to him will be identified as the traitor. When Victor shows up, Alphonse threatens him by saying that he'll find the thing the man who is threatening him loves most and "burn it down". However, due to Victor previously saving his life, Alphonse is reluctant to believe that Victor is the traitor and doesn't do anything to him.
Victor notifies Beatrice that he finally plans to kill the drunk driver. He confesses that he doesn't love Beatrice when she admits she feels that way about him. However, Beatrice later receives a letter that Victor didn't kill the driver so that they can spend more time together, knowing the psychological effect that the murder would have had on her. The next day, Victor sets up explosives in a warehouse and creates a trail for the Albanians and Alphonse to arrive. However, Beatrice reveals through a call that she didn't mail the tape because she didn't want to see Victor die. At that moment, Darcy, who has found Victor's true intentions while investigating his apartment, subdues Beatrice. He says "Laszlo Kerick" over the line before letting Victor know that they will be waiting for him at Alphonse's. Victor drives towards Alphonse's house.
As Alphonse and the Albanians gather in the house, Victor crashes into the house with his car. He then kills all of the men in the ensuing gun fight except for Darcy, whom he spares when given the chance to kill. Victor makes his way up to where Beatrice is being held in the top floor by Alphonse and Ilir. Beatrice escapes their watch while Victor distracts them with gun fire and she begins to play the tape on a computer. As Ilir hears the tape, he turns his gun on Alphonse who he believes has betrayed him. Alphonse raises his gun in defence angrily telling him to lower the gun, they both end up shooting each other dead.
As Victor escapes with Beatrice, Darcy confronts them with his gun raised. When asked if he spared Darcy because he has a wife and kid, Victor replies, "No, because they have you" before dropping his gun. Darcy also lowers his gun and allows the two to leave. Victor and Beatrice travel home on a subway and share a kiss.