Billy turns over the evidence of Hostetler's corruption to Commissioner Fairbanks, even though it also reveals that Billy did kill Tavarez in cold blood. The Mayor is arrested by Fairbanks on the eve of the election, and Billy later turns himself in to Fairbanks.
NYPD Detective Billy Taggart (Mark Wahlberg) is arrested for murdering Mikey Tavarez, who raped and murdered a sixteen year old girl but walked on a technicality. Police Commissioner Carl Fairbanks (Jeffrey Wright) goes to New York Mayor Nicholas Hostetler (Russell Crowe) with evidence that will convict Billy, but the Mayor buries it, and Billy is cleared of the crime. The Mayor calls Billy into his office and calls him a hero, but is forced to leave the NYPD.
Seven years later, Billy is now a private investigator. One day, Billy is called to meet Mayor Hostetler, and he hires Billy to investigate his estranged wife Cathleen (Catherine Zeta-Jones), who he believes is having an affair. He begins to follow her, and quickly learns she is seeing Paul Andrews (Kyle Chandler), the campaign manager of Councilman Jack Valliant (Barry Pepper), who is Hostetler's opponent in the upcoming mayoral election. Later, Cathleen meets with Billy and tells him she knows that he is under the Mayor's orders to follow her, but not to trust him. Despite the warning, Billy allows Hostetler to have the pictures that show her and Andrews together. The next night, Billy gets a call from his assistant Katy to meet Fairbanks at a murder scene. Billy arrives and sees that Andrews was the murder victim.
Billy and Fairbanks learn from Valliant, who was at Andrews apartment at the time of the murder because they were lovers, that Andrews was to meet with Todd Lancaster, the son of Sam Lancaster, one of the Mayor's wealthiest benefactors, and Todd was going to give him information that Valliant would reveal at the upcoming Mayoral debate. Later, Cathleen tells Billy that Andrews was not her lover (even though she admits she is cheating on the Mayor), but actually her source in providing information that would destroy the corrupt Mayor's career. Hostetler found out about the source, and he hired Billy to find him and lied by saying he was her lover. Billy decides to start investigating the Mayor, and that leads him to Sam Lancaster's construction business.
Weeks earlier, the Mayor finalized a deal that would sell the Bolton Village Housing Project to a developer who promised to revitalize the area but keep the existing structures. Billy found evidence that shows that Bolton Village is actually going to be torn down and condos would be built in it's place, and Lancaster's company would be the contractor. As he is leaving Lancaster's business, Billy is chased by Hostetler's men, causing him to crash his car and lose the evidence. Billy then goes to Todd Lancaster's home, where he confirms Valliant's story and gives the information to Billy. It is a piece of paper that shows that Hostetler and Lancaster are actually business partners. If Bolton Village is allowed to be demolished, Hostetler would profit on making thousands of people homeless. That night, the Mayor and Valliant have their debate, which the Mayor wins with ease.
The next day, Billy goes to the home of the Mayor, and he turns on the recording app on his phone. He confronts the Mayor and tells him if he resigns, he will keep his mouth shut and none of the evidence will be revealed. Hostetler then tells Billy he still has the evidence that kept him out of prison seven years ago. It's a videotape showing a drunken Billy shooting Mikey Tavarez in cold blood, and he also reminds Billy there is no statute of limitations for murder. If Billy turns over all of the information he has on him, Hostetler will rebury the videotape. Billy leaves the house and, despite knowing he will have to face justice for what he did to Tavarez, he plays the recording to Fairbanks and gives him all the information. That night, Fairbanks goes to the Mayor's house during his election eve party and arrests him. He also reveals that he is the one who is having the affair with Cathleen. The movie ends the next day. With everyone still reacting to the news of the Mayor's arrest, Fairbanks finds Billy at a bar and he quietly turns himself in.