Ryan Gaerity (Tommy Lee Jones), an Irish terrorist, escapes from his cell in a castle prison in Northern Ireland, killing a guard and his cellmate in the process, after turning a toilet into a bomb.
In Boston, Lt. Jimmy Dove (Jeff Bridges) is a veteran member of the police's bomb squad, on the verge of retirement and helping to train newer recruits. He hides the secret that he is really Liam McGivney, a former member of a Northern Ireland terrorist cell. He had been friends with Gaerity, but when Gaerity tried to trigger a bomb that would have included many civilian casualties, McGivney interceded, Gaerity detonated the bomb anyway with his men nearby ending up in the death of his girlfriend and Gaerity's sister, his men and leading to Gaerity's imprisonment. Devastated, McGivney had moved to Boston and took on the Dove identity, hoping to find atonement in defusing bombs and saving others. Only Dove's uncle, Max (Lloyd Bridges) is aware of this past and expresses his desire for Dove to retire earlier, having clearly shown his atonement.
Gaerity makes his way to Boston, taking residence in an abandoned casino boat, and tracks down Dove. Gaerity takes on the position of a janitor in the police department to learn more about Dove's present life and those of his co-workers. Gaerity sets up bombs specifically designed to kill the defusers, killing three members of the bomb squad. Dove recognizes Gaerity's work in the bomb designs, and realizes that his wife Kate (Suzy Amis) and daughter are in danger. He explains his true past to them, and convinces them to go into hiding at a nearby beach house. Another squad member, rookie technician Anthony Franklin (Forest Whitaker), who has linked Dove's former life to Gaerity, is safely rescued from another bomb planted by Gaerity with Dove's aid, and promises Dove any assistance he can offer.
Max decides to try to stop Gaerity himself, trying to get close to him at an Irish bar, but instead ends up captured by Gaerity, and latched into a makeshift bomb. Dove tracks down Max, and goes to retrieve his tools, but Max, realizing that Gaerity created the bomb to kill both of them, intentionally triggers the bomb while Dove is away, sacrificing himself. In analyzing the bomb's debris, Dove finds a roulette ball that points to the abandoned ship, and tracks Gaerity there. Gaerity reveals that he has set up another bomb in Kate's car and activates its arming mechanism before engaging with Dove in a large melee fight throughout the booby-trapped ship, rigged to blow up in a few minutes. With Dove gaining the upper hand. Gaerity handcuffs himself to Dove, preventing him from leaving. Dove is saved by Franklin, who had followed Dove to the ship, and the two escape in time before the ship explodes.
The two race back to the city, hoping to stop Kate before she starts the car. They arrive too late but are able to catch up to Kate, and Dove jumps into her car. He finds the complex bomb and manages to defuse it in time. As they recover, Franklin tells Dove he knows his past identity but will keep it a secret if he can take credit for taking down Gaerity. Dove agrees and gives Franklin his badge before leaving with Kate and his daughter.
- Jeff Bridges as Jimmy Dove/Liam McGivney
- Tommy Lee Jones as Ryan Gaerity
- Suzy Amis as Kate Dove
- Lloyd Bridges as Max O'Bannon
- Forest Whitaker as Anthony Franklin
- Stephi Lineburg as Lizzie
- John Finn as Captain Fred Roarke
- Caitlin Clarke as Rita
- Christofer de Oni as Cortez (as Chris de Oni)
- Loyd Catlett as Bama
- Ruben Santiago-Hudson as Blanket
- Cuba Gooding Jr. as Bomb Squad class member
- Ed O'Keefe as press photographer
- Mike Starr as Francis the Barkeeper