New Orleans Police Detective Remy McSwain (Dennis Quaid) is investigating a series of mob murders that he believes are part of a gang war. A.D.A. Anne Osborne (Ellen Barkin) is investigating the NOPD, including McSwain, for corruption, and she believes the cops are involved in the murders. Their investigations merge when he discovers that she is right about the murders being committed by cops. They also fall in love.
During the investigation, McSwain is arrested by Internal Affairs for accepting a bribe, which was captured on videotape. The case goes to trial, with Osborne as the prosecuting attorney. Thanks to some help from the police, the videotape is "accidentally" erased. Since that tape was the prosecution's only evidence to the crime, the case is thrown out and McSwain is reinstated to the force. Despite losing the case, and convinced McSwain had something to do with the videotape's erasure, they continue their investigation and their affair.
Detectives Andre DeSoto (John Goodman) and Ed Dodge (Ebbe Roe Smith) are the killers. They're killing the mobsters to "clean up the city" (and get rid of the competition), stealing the heroin they were trafficking, and plan on selling the heroin themselves.
McSwain and Osborne track down DeSoto and Dodge to a marina, where they're about to sail away with the heroin. In the resulting shoot-out, Osborne kills DeSoto and McSwain shoots Dodge with a flare gun, killing him and setting the boat on fire. McSwain and Osborne flee the marina just as the boat blows up, destroying all of the heroin.
At the very end, McSwain and Osborne get married. He also admits to erasing the videotape.