Former Ohio State Buckeyes quarterback and rookie FBI Agent Johnny Utah is assigned to assist experienced agent and veteran Angelo Pappas in investigating a string of bank robberies by the "Ex-Presidents", a gang of robbers who wear face-masks depicting former US presidents Ronald Reagan, Richard Nixon, Lyndon B. Johnson, and Jimmy Carter to disguise their true identities. They raid only the cash drawers in the banks that they rob never going for the vault and are out within 90 seconds. Pursuing Pappas' theory that the criminals are surfers, Utah goes undercover to infiltrate the surfing community. He concocts a story to persuade orphaned surfer Tyler Endicott to teach him to surf, she having saved him from drowning. Through her he meets Bodhi, the charismatic leader of a gang of surfers comprising Roach, Grommet, and Nathaniel. The group are initially wary of Utah, but accept him when Bodhi recognizes him as the former college football star. As he masters the art of 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. Despite their criminal records, these surfers turn out to not be the Ex-Presidents and the raid inadvertently ruins a DEA undercover operation.
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 everyone 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. Wearing a Reagan mask, Bodhi leads Utah on a furious foot chase through the neighborhood, which ends when Utah, by jumping into an aqueduct, causes an old knee injury to flare up again. Despite having a clear shot at Bodhi, Utah does not shoot and Bodhi escapes.
At a campfire that night, it is confirmed that Bodhi and his gang are the Ex-Presidents. 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, a non-surfing thug, to hold Tyler hostage. Utah is thus blackmailed into participating in the Ex-Presidents last bank robbery of the summer. As a result, Grommet, along with an off-duty police officer and a security guard who both try to stop the robbery are killed. Angered by Grommet's death, Bodhi knocks Utah out and leaves him at the scene. Defying their senior officer who arrests Utah for armed robbery, Pappas and Utah go to the airport where Bodhi, Roach, and Nathaniel are about to leave for Mexico. During a shootout, Pappas and Nathaniel 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 again. With no other parachutes available, Utah jumps from the plane with Bodhi's gun and intercepts him before he lands. After landing safely, Utah's knee gives out again, allowing Bodhi to escape Utah's grasp. Bodhi meets with Rosie and releases Tyler who reunites with Utah. Roach dies of his wounds and Bodhi and Rosie leave with the money.
Nine months later, Utah tracks Bodhi at Bells Beach in Victoria, Australia, 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. Bodhi 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.
Output: What do the robbers never go into at the bank?