The kids have stopped at a lakeside camp site on their way to Fortree City. Ash trips and drops his badge case into the lake, where it is eaten up by a giant Whiscash. Ash dives in after the Pokémon but gets caught in some reeds instead.
Ash is pulled out of the water by a fisherman named Sullivan, who calls himself "Legend." He tells them that he has been trying to catch the giant Whiscash for years and its name is Nero. The kids decide to help "Legend" catch Nero.
"Legend" shows them how to fish, but all of them are unsuccessful. On the other side of the lake Team Rocket is also fishing, but not having much luck.
Eventually Ash snags Nero and manages to pull the giant Whiscash out of the water. Before he can get his badges back, Team Rocket scoops Nero up in a net and flies away in their balloon. Ash's Grovyle uses Bullet Seed to send the balloon crashing down, and a battle begins. Whiscash uses Earthquake on Team Rocket, and then Pikachu sends them blasting off with Thunder.
"Legend" tries to catch Nero using his own Pokémon, but eventually he just pulls out a Master Ball and throws it—which Nero gobbles up, and then swims away.
While resting by a lake, Ash decides to polish his Badge Case and remembers all the Gym Battles he’s so far had in Hoenn, when suddenly a larger than normal Whiscash, a Water/Ground Pokémon, jumps out of the water and eats the case. Ash calls out Corphish, which is promptly defeated by the giant Whiscash. Determined to get his hard-earned Badges back, Ash dives in but nearly drowns when he is saved by a self-proclaimed fishing god, Sullivan. Sullivan has spent years trying to catch the giant Whiscash and regards himself as a fishing legend and god, even though he, in fifty years, has never actually caught the Whiscash, who he has nicknamed Nero. Max accidentally insults Sullivan by asking why he hasn't caught Whiscash yet, but Ash and his friends restore Sullivan's spirits by calling him a legend.
Determined to retrieve the Badges, Ash and the others start fishing, with Sullivan offering them various fishing rods and lures. Meanwhile, Team Rocket are also trying to get a hold of the same Whiscash (figuring if they capture it, they will get both a new Pokémon and a bunch of Badges). While Team Rocket actually spots the elusive Whiscash, Ash, Sullivan and company start fishing. While Ash and the others are not successful at catching anything, Sullivan gets a nibble from a Pokémon every few seconds, but none are Whiscash, so he tosses them all back. Ash asks Sullivan to teach them the secret to fishing, and Sullivan begins to teach them the "art of angling". Max again accidentally insults Sullivan by telling him his first lesson—fish where there are water Pokémon, is obvious, but everyone again calls Sullivan a legend to cheer him up. When Sullivan shows them how to cast the line properly, Max casts perfectly on the first try, again insulting Sullivan, who has spent decades perfecting his technique. Max gets a nibble from this cast—and a Whiscash, though not Nero, surfaces. However, Nero does appear right next to the hooked Pokémon, and taunts Ash by showing him the Badge case before disappearing.
Meanwhile, Team Rocket is fishing using James' bottle cap collection as lures. Things take a turn for the crazier when a hooked Feebas bites onto Jessie’s hair, which Jessie flicks off. This gives Meowth an idea, because in the next scene he's suggested Team Rocket fish using Jessie's hair as a rod and lure! Another Feebas bites onto Jessie's hair yet again. Meanwhile, Sullivan proclaims he can sense Nero nearby and casts his line—but hooks only a Magikarp. However, Ash does manage to hook Nero, who takes the would-be anglers and their small boat on a ride towards a pile of rocks! Ash calls out Corphish and orders it to use Crabhammer on him—which sends Ash flying onto the rocks and putting the boat out of danger. The momentum allows Ash to pull Nero out of the water. Ash calls out Grovyle, and attacks Nero, but the giant Pokémon simply laughs at Ash. However, it's Team Rocket that seem to have the last laugh—they net Nero the Whiscash from the middle of the battle. Team Rocket quickly escaped using their enhanced balloon. Brock calls out Mudkip and Lombre and orders both to use Water Gun, and Ash orders Grovyle to use Bullet Seed. Team Rocket is unable to outrun the attacks due to Nero's enormous weight, and the Bullet Seed brings down the balloon. Team Rocket call out their Pokémon for a battle (which Ash combats with Pikachu and Grovyle). Whiscash escapes from its net and uses Earthquake, and Pikachu sends Team Rocket blasting off with Thunder. The smoke from the blast-off causes Whiscash to cough, bringing up Ash's Badge case and Badges.
Sullivan then challenges Nero to a battle, sending out Hannah, his Flaaffy. Using Flaaffy's Dynamic Punch and Iron Tail while dodging Nero's attacks, Sullivan weakens Nero, then orders Hannah to use ThunderShock. Unfortunately, Whiscash are part Ground-type, and the attack has no effect. Sullivan then proclaims that he has a plan to capture Nero, and draws a Master Ball out of his cloak (which Ash and friends recognize with a gasp), a rare and powerful Poké Ball capable of capturing any Pokémon! Sullivan declares that it has taken 50 years just to get a Master Ball, and he throws the powerful ball, which Nero eats. Everyone gasps, and Sullivan yells at Nero exasperatedly (a Master Ball did just fail, after all). Nero jumps back into the water, and Sullivan declares that "Tomorrow's another day!" Ash and company cheer up Sullivan by calling him a legend again, before Ash and company bid Sullivan a cheery farewell. Meanwhile, Nero apparently didn't actually eat the Master Ball but swallowed it instead, and is shown to be happily balancing its new toy on the tip of its tongue.