Former Ohio State quarterback and rookie FBI agent Johnny Utah (Keanu Reeves) assists experienced agent Angelo Pappas (Gary Busey) in investigating a string of bank robberies by the "Ex-Presidents": a gang of robbers who wear rubber masks of Ronald Reagan, Jimmy Carter, Richard Nixon and Lyndon B. Johnson. Rather than robbing the vault, they only demand the cash the tellers have in their drawers, and are gone within ninety seconds.
Pursuing Pappas's theory that the criminals are surfers, Utah goes undercover to infiltrate the surfing community. He fabricates a personal family tragedy to persuade orphaned surfer and restaurant waitress, Tyler Endicott (Lori Petty) to teach him to surf, after she saves him from drowning during his first attempt at surfing. Through her, he meets Bodhi (Patrick Swayze), the charismatic leader of a gang of surfers consisting of Roach (James LeGros), Grommet (Bojesse Christopher), and Nathanial (John Philbin). The group are initially wary of Utah, but accept him when Bodhi recognizes him as the former college football star who quit the sport due to a knee injury. As he masters surfing, Utah finds himself increasingly drawn to the surfers' adrenaline-charged lifestyle, Bodhi's philosophies, and Tyler. Following a clue retrieved by analyzing toxins found in the hair of one of the bank robbers, Utah and Pappas lead an FBI raid on another gang of surfers, resulting in the deaths of two of them. The raid inadvertently ruins a DEA undercover operation, as those surfers were wanted for separate charges regarding drug dealing, but they are disproven to be the Ex-Presidents.
Watching Bodhi's group surfing, Utah begins to suspect that they are the "Ex-Presidents", noting how close a group they are and the way one of them moons other surfers in the same manner one of the robbers does when leaving a bank. Utah and Pappas stake out a bank and the Ex-Presidents appear. While wearing a Reagan mask, Bodhi leads Utah on a foot chase through the neighborhood, which ends when Utah's old knee injury flares up after jumping into a flood control channel. Despite still having a clear shot, the injured Utah is unwilling to kill Bodhi, and allows him to escape - repeatedly shooting into the air instead.
At a campfire that night, it is confirmed that Bodhi and his gang are the Ex-Presidents. Tyler discovers Utah's FBI badge and angrily terminates their relationship after briefly holding him at gunpoint. Shortly afterwards, Bodhi aggressively recruits Utah into going skydiving with the group and he accepts. After the jump, Bodhi reveals that he knows Utah is an FBI agent and has arranged for his friend Rosie (Lee Tergesen), a non-surfing thug, to hold Tyler hostage. Utah is blackmailed into participating in the Ex-Presidents' last bank robbery of the summer. As a result, Grommet, along with an off-duty cop (Anthony Mangano) and a bank guard (John Apicella), who both attempt to foil the robbery—are killed. Outraged by Grommet's death, Bodhi knocks Utah out and leaves the scene.
Defying their superior and FBI director, Ben Harp (John C. McGinley) who arrests Utah for the armed robbery, Pappas and Utah head to the airport where Bodhi, Roach, and Nathanial are about to leave for Mexico. During a shootout, Pappas and Nathanial are killed and Roach is seriously wounded. With Roach aboard, Bodhi forces Utah onto the plane at gunpoint. Once airborne and over their intended drop zone, Bodhi and Roach put on their parachutes and jump from the plane, leaving Utah to take the blame. With no other parachutes available, Utah jumps from the plane with Bodhi's gun and intercepts him. After landing safely, Utah's knee gives out again, allowing Bodhi to escape Utah's grasp. Bodhi meets with Rosie and releases Tyler. Roach dies of his wounds, and Bodhi and Rosie leave with the money, with Tyler and Johnny watching on.
Nine months later, Utah tracks Bodhi to Bells Beach in Victoria where a record storm is producing lethal waves. This is an event Bodhi had talked about experiencing, calling it the "50-Year Storm". Utah attempts to bring Bodhi into custody, but Bodhi refuses. During a brawl in the surf, Utah manages to handcuff himself to Bodhi, who begs Utah to release him so he can ride the once-in-a-lifetime wave. Knowing Bodhi will not come back alive, Utah releases him, bids him farewell, and sees him step towards the wave. While the authorities watch Bodhi surf to his death, Utah walks away, throwing his FBI badge into the ocean.
Patrick Swayze as Bodhi 'Bodhisattva'
Keanu Reeves as FBI Agent Johnny Utah
Gary Busey as FBI Agent Angelo Pappas
Lori Petty as Tyler Ann Endicott
John C. McGinley as FBI Director Ben Harp
James LeGros as 'Roach'
John Philbin as Nathanial
Bojesse Christopher as Grommet
Lee Tergesen as 'Rosie'
Vincent Klyn as Lupton 'Warchild' Pittman
Chris Pedersen as 'Bunker' Weiss
Anthony Kiedis as 'Tone'
Dave Olson as Archbold
Julie Michaels as 'Freight Train'
Kimberly Martin as 'Fiberglass'
Gloria Mann as Fierce Woman
Galyn Gorg as Margarita
Sydney Walsh as Miss Deer
Julian Reyes as FBI Agent Alvarez
Daniel Beer as FBI Agent Babbit
Richard Grove as FBI Agent Cullen
Anthony Mangano as Off Duty Cop At Bank
John Apicella as Bank Security Guard
Mike Genovese as FBI Instructor Corey
Jack Kehler as FBI Technician Halsey
Christopher Pettiet as 15-Year-Old Kid At Surfboard Shop
Tom Sizemore as DEA Agent Deets (uncredited)
Debra Lamb as Flame Blower At Party (uncredited)
Jeff Imada as Store Clerk (uncredited)