Victor (Colin Farrell) has infiltrated a criminal empire run by ruthless kingpin Alphonse Hoyt (Terrence Howard). His objective is to make Alphonse pay for the murder of his wife and young daughter (Accalia Quintana) two years earlier. Victor intends to exact revenge on Alphonse through physical and psychological torture before finally killing him.
Victor watches and is watched by Beatrice (Noomi Rapace), a mysterious young woman who lives in the apartment across from his. Beatrice begins to contact Victor and show interest in him. On their first date, Beatrice reveals her true motivation: she has a video of Victor killing a man, and will go to the police unless Victor kills the drunk driver who disfigured her face.
Meanwhile, Alphonse is receiving threats against his life by Victor. During a shoot-out with Jamaicans, whom he believes are responsible for the threats, Victor saves his life and thus gains his trust. As the threats intensify, a man within Alphonse’s crew and a friend of Victor’s, Darcy (Dominic Cooper), investigates their source. Victor has also kidnapped the brother of Albanian kingpin Ilir Brozi (James Biberi), who was involved in helping Alphonse dispose of Victor’s family. Victor plans to pool the Albanians and Alphonse’s men together so he can eliminate them all at once.
Victor stages a deliberately failed sniper attack on Alphonse from a rooftop in continuing his plans of torture. However, he nearly is caught in the process and manages to escape thanks to Beatrice, who has been following Victor. Ilir’s brother, who was kidnapped by Victor, has been held tied up and blindfolded in an abandoned ship (the S.S. United States, which, although the film is set in New York City, has been docked in Philadelphia since 1996). Victor makes a video in which Ilir’s brother claims that he is being held in the basement of Alphonse’s warehouse, in an effort to frame Alphonse, which would lure the Albanians to the warehouse in retaliation, thereby having them all rounded up in one place. He then kills Ilir’s brother. Beatrice is given the memory card with the video to mail to Ilir in order to make it seem like Alphonse’s crew was responsible for his brother’s kidnapping. Alphonse, now knowing the threats are coming from someone within his crew, becomes suspicious but reluctant to believe that Victor is the traitor due to him previously saving his life. Victor later notifies Beatrice that he didn’t kill the drunk driver so that they can spend more time together, knowing the psychological effect that the murder would have had on her. Victor sets up a trap for the Albanians and Alphonse, but Beatrice reveals through a call that she didn’t mail the memory card 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 and informs Victor she is being held captive at Alphonse’s house.
As Alphonse and the Albanians gather in the house, Victor crashes into the house with his truck. Victor spares Darcy’s life in the ensuing gunfight and makes his way to the top floor where Beatrice is held by Alphonse and Ilir. Beatrice escapes their watch while they are distracted by Victor’s successful advance, and she begins to play the video on a computer. As Ilir hears the video, he turns his gun on Alphonse who he believes has betrayed him. 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 child (“Did you not kill me because I’ve got a wife and a kid?”), Victor replies, “No, because they’ve got 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.