An underachieving bluestreak cleaner wrasse named Oscar (Will Smith) fantasizes about being rich and famous while making his way to work as a tongue scrubber at the local Whale Wash, a job in which he is following in his father's footsteps. Soon after arriving he is called to the office of his boss, a puffer fish named Sykes (Martin Scorsese), to discuss the fact that he owes "five thousand clams" and has to pay it back by the next day. After explaining this to his angelfish best friend Angie (Renée Zellweger), she offers him a chance to pay back the money by pawning a pink pearl that was a gift from her grandmother. Oscar brings the money to the race track to meet Sykes, but becomes distracted by his dreams of grandeur. Upon hearing that the race is rigged, places it all on a long-shot bet by the name of "Lucky Day". Such a million dollar bet is noticed nearby by a beautiful lionfish named Lola (Angelina Jolie), who flagrantly seduces an excited Oscar, but Oscar is disappointed when she leaves upon learning that he is a whale washer. Sykes is furious that Oscar bet the money but nonetheless agrees to see how the race turns out. Moments before their "horse" "Lucky Day" crosses the finish line, he trips and falls on line. The race is lost and Oscar is set to be punished in a secluded area for his impulsiveness.
Meanwhile on another side of the ocean in the wreck of the RMS Titanic, a family of criminally-inclined great white sharks has a problem with one of their sons, Lenny (Jack Black), who is a vegetarian. Lenny refuses to act the part of a killer and wishes to not have to live up to those expectations. His crime lord father Don Lino (Robert De Niro) orders Lenny's more savage big brother Frankie (Michael Imperioli) to tutor Lenny in the family business. After the two sharks depart their father, Frankie sees Oscar being electrocuted by Sykes' two jellyfish thugs Ernie and Bernie (Doug E. Doug and Ziggy Marley) and sends Lenny off to attack. The jellyfish spot Lenny and flee, leaving Oscar alone with him. Instead of attacking Oscar, Lenny frees him upsetting Frankie who becomes annoyed and charges at Oscar. Frankie is killed however when an anchor falls on him. Lenny flees, overcome with grief and guilt. As no other witnesses were present and Oscar was seen near the body, everyone comes to believe that he killed Frankie, an opportunity that Oscar decides to exploit for fame.
Oscar returns to the city with a new title of the Sharkslayer. Sykes becomes his manager, Lola becomes his girlfriend, and Oscar moves to the "top of the reef" to live in luxury. At the same time, Don Lino has everyone out looking for Lenny, and when several get close to Oscar's neighborhood, Oscar's neighbors expect him to drive them away. When Oscar runs into Lenny, Lenny (who does not wish to return home) forces Oscar to let him stay with him since he is aware of Oscar's lie. Soon, Angie finds out about the lie and threatens to tell everyone. Oscar and Lenny convince her to keep quiet, though she is heartbroken by Oscar's dishonesty. Oscar's situation is not helped by the shallow Lola, who indicates to him that her interest in him extends only as far as he remains famous. With Don Lino planning revenge, Oscar and Lenny stage an event in which Lenny pretends to terrorize the town and Oscar must defeat him throwing him into the depths of the ocean. Though this further cements Oscar as the Sharkslayer, it greatly angers Don Lino. Oscar leaves Lola for Angie after Angie reveals that she had feelings for Oscar even before he became famous, but this leaves the rebuffed Lola determined to get revenge.
Oscar buys some Valentine's Day gifts for Angie, but before he can present them to her, he finds that Don Lino has kidnapped Angie in order to force a sit-down. Lenny comes along now disguised as a dolphin named Sebastian. They arrive at the meeting to find Lola next to Don Lino, while Angie is tied up and presented to Don Lino on a plate who prepares to eat her if Oscar does not comply. Lenny grabs Angie into his mouth, but later regurgitates her, when Don Lino realizes that "Sebastian" is really Lenny, he chases Oscar through the reef. Oscar heads for the Whale Wash and ends up trapping both sharks. He is given an ovation by the other fish, but Oscar confesses that he is not a "Sharkslayer" and that it was a falling anchor that killed Frankie. He then tells Don Lino that everyone likes Lenny for who he is strongly urging him not to prejudge people before he knows them properly and to not make the mistake he made in prejudging his wealth. Realizing that Oscar is right, Don Lino apologizes to Lenny and reconciles with him while making peace with Oscar, stating that he and his gang bear him no ill will. Oscar forsakes all the wealth he has acquired, makes peace with the sharks, becomes manager of the Whale Wash (now frequented by sharks), and starts dating Angie and enjoys a happy, honest life.
During the credits, Lola comes to see Oscar in the top of the reef wanting to make amends with him for what she did, but all she finds is a hermit crab named Crazy Joe (David P. Smith), one of Oscar's friends, waiting for her.