A smuggling operation in Tampa Bay results in the deaths of Bobby Saint, the son of mafia boss Howard Saint, and Otto Krieg, an arms dealer. However, Krieg's death was faked; he is revealed to be undercover FBI agent and US Army Delta Force veteran Frank Castle on his final mission before retirement. Enraged about the death of his son, Saint orders his men to learn everything they can about Krieg, and acquires access by bribing corrupt federal law enforcement officers for his federal service history. He orders Castle killed at a family reunion, while Saint's wife Livia requests that Castle's family be killed as well. At the reunion, Saint's men, including Saint's best friend Quentin Glass and Bobby's identical twin John, kill Castle's entire family and shoot Castle, leaving him for dead. Castle survives and is nursed back to health by a local fisherman.
With the police and FBI unwilling to pursue the killers due to Saint's power and influence, Castle moves into an abandoned apartment occupied by three outcasts—Joan, Bumpo, and Spacker Dave—and begins his mission to bring the Saints down. With the help of information provided by Mickey Duka, Saint's less malevolent henchman, Castle studies the Saint family and learns their every move, during which he discovers Glass to be a closeted homosexual. He openly attacks Saint's business and sabotages his partnership with his Cuban partners.
Saint discovers Castle is alive and sends assassins to kill him. The first, Harry Heck, ambushes Castle on a bridge until he crashes his car, but is killed when Castle stabs his throat with a ballistic knife. The second, a behemoth called the Russian, nearly beats Castle to death in his own apartment. Castle kills him by dousing his face with boiling oil and pushing him down a flight of stairs, breaking his neck. The tenants treat Castle's wounds and hide him in his hidden elevator as Saint's men arrive for him. When Dave and Bumpo refuse to reveal Castle's hideout, Glass tortures Dave by plucking each of his piercings with pliers. They leave one of their men to intercept Castle, but Castle kills him after they leave.
With Mickey's help, Castle poses as an anonymous blackmailer and arranges for Glass to be at certain places while planting Livia's car in the same location, and ultimately placing one of Livia's earrings in Glass's bed. When Saint finds the earrings, he stabs Glass to death and, despite her protest that Glass was gay, accuses Livia of having an affair with his best friend. He throws Livia off an overpass onto a railroad track, where she is run over by a train. With Saint despondent, Castle assaults Saint's club and kills every member of his mob, including his remaining son John. Saint escapes the building albeit wounded. Castle pursues him and shoots him in a duel. As Saint lies dying, Castle reveals his schemes that led Saint to kill his friend and wife. He ties Saint to a car and sends it into the club's parking lot which is rigged with explosives. Saint dies in the ensuing explosion.
Castle returns home and prepares to kill himself with his mission fulfilled, but changes his mind after seeing a vision of his wife, instead deciding to continue to fight crime. He leaves some of Saint's money as a farewell gift to the tenants for protecting him. He is then seen standing alone on the Sunshine Skyway Bridge at sunset, where, in a voice-over, he vows to kill all evildoers in his new identity, the Punisher.
Thomas Jane as Frank Castle
John Travolta as Howard Saint
Will Patton as Quentin Glass
Rebecca Romijn as Joan
Ben Foster as Spacker Dave
John Pinette as Nathaniel Bumpo
Samantha Mathis as Maria Castle
Marcus Johns as Will Castle
Russell Andrews as Agent James Weeks
James Carpinello as Bobby Saint and John Saint
Laura Harring as Livia Saint
Eddie Jemison as Mickey Duka
Eduardo Yáñez as Mike Toro
Omar Avila as Joe Toro
Kevin Nash as The Russian
Mark Collie as Harry Heck
Roy Scheider as Frank Castle Sr.
Tom Nowicki as Lincoln
Veryl Jones as Candelaria
Marco St. John as Chief Morris
Hank Stone as Cutter
Rick Elmhurst as Bay News 9 Newscaster
Carleth Keys as Bay News 9 Newscaster
based on the Marvel Comics character of the same name