The scene opens up with Ash training his Pokémon at the beach. A young female surfer comes to shore and challenges Ash to a battle, explaining that she trains with Brawly and that she is one of his best students. They decide to eat lunch first, though. Unknown to them, they're being spied on by Team Rocket in their Magikarp sub. Team Rocket goes into their usual scheming to steal all the Pokémon, including the new girl's. Brock notes that a storm must be coming because Pokémon are searching for safety and the sea is in turmoil. Ash and the girl start their match. She sends out Meditite, and Ash sends out Pikachu. Before anything can really happen, Brawly appears and orders that the match be called off due to the storm coming.
The group begins heading back through the forest, collecting various fearful Pokémon along the way. While walking, they find out that the girl doesn't actually train with Brawly; she just studies at the Gym. Team Rocket's attempt to get back to their sub was cut short by a huge wave coming and sending them into the sky, only to land in front of Ash and the gang. They join the group in their trek to safety. Everyone spends the night in a cave.
The following morning, things are back to normal with Team Rocket trying to steal Pikachu. Brawly sets Hariyama after them and sends them on their way. The girl and Ash have a battle and Pikachu wins. Ash challenges Brawly to another battle and Brawly accepts and begins to lead the group to his battling arena.
Ash and his Pokémon stand on the beach waiting for the next wave to wash ashore. The huge surge soon makes landfall, though Ash and the Pokémon all run from it in time. May and Max cheer seeing Ash's training finally paying off. Brock calls everyone over for breakfast. As they are sitting down to eat as a girl comes in on a wave, surfing. She leaps off her surfboard and introduces herself as Shauna the Battle Girl, Brawly's top student and girlfriend. She challenges Ash to a fight, but Ash declines, saying he wants to eat first. Shauna gets mad at this, but then her belly growls, and she collapses in embarrassment. Brock invites her to eat with them, and Shauna eagerly takes a seat on the table and digs in. Out at sea, Meowth is looking out of the submarine's periscope when he realizes that Jessie and James are eating stew. He angrily confronts his teammates before proposing a new plan to steal Pikachu. They soon get to work digging pitfall traps across the beach.
Later, Shauna and Ash both finish their meals at the same time before getting into an argument. Max and May observe that the pair are remarkably similar. Shauna declares that she learned of Ash from Brawly, and she was furious to learn that he considered the Ash a better Trainer. Brock convinces them to help clean up and they begin to wash the dishes as fast as they can. Brock takes the opportunity to collect sticks for firewood. He suddenly senses something is amiss as he sees a group of Shroomish running by and storm clouds gathering in the distance. Ash and Shauna are finally ready to begin their battle while Team Rocket watch on. Ash chooses to fight with Pikachu while Shauna sends out a Meditite, which May looks up on her Pokédex. Ash has Pikachu use Quick Attack and Meditite uses Detect to dodge. Jessie is becoming irritated as Pikachu and Meditite somehow manage to avoid setting off any of their pitfall traps. Shauna calls for a High Jump Kick, though Pikachu manoeuvres itself out of the way. Pikachu prepares to land a Quick Attack when Brawly arrives on the scene. Shauna is particularly nervous to see Brawly and recalls her Meditite. Brawly informs everyone that a hurricane is due to hit Dewford Island and calls for them to find a safer spot to evacuate to. Brawly turns his attention to Shauna, and as Brock is about to explain the situation, Shauna covers his mouth and drags him off. The weather forecast concerns James, but Meowth assures that him that they will be safe if they stay underwater in the Magikarp sub.
The group, Brawly and Shauna are hurrying off to get out of the storm when they see three Seedot and three Shroomish, which they invite to seek refuge in a nearby cave. As for Team Rocket, they desperately cling onto the side of their sub when Meowth realizes that the entry hatch is stuck. A giant wave soon crashes, sending the trio and their sub flying off into the distance. Soon, Brawly leads everyone up the side of a steep cliff. May is becoming increasingly frightened by the height, so Ash suggests everyone hold hands. As everyone grabs a hand, Shauna refuses to grab Brawly's hand, blushing. May queries if Shauna is actually Brawly's girlfriend, and the odd statement leaves Brawly baffled. Shauna finally reveals the truth, that she hopes to be Brawly's girlfriend one day and that she isn’t his top apprentice. Brawly calls for everyone to focus on the evacuation effort and he’ll discuss Shauna's lies later. As Shauna grabs Brawly's hand, a rock above them splits and starts to fall. Brawly sends out Hariyama, who blocks the rock. Team Rocket is tossed off their sub and land on the path in front of Ash and his friends, and beg to be taken along. Brawly invites them along as well.
Everyone reaches the cave and shelter inside, with a warm fire and some wild Pokémon. Everybody except Shauna are sitting around the fire, talking. Brock’s attention turns to Shauna, and Brawly explains that she isn’t his apprentice because of her short fuse and she is yet to develop a connection with her Pokémon. Brawly convinces Shauna and the Rocket trio to come over and sit with them. The following day, Max walks outside and announces to everyone that the storm is over. Team Rocket reveals where their true loyalties lie and block the save entrance as they recite their motto. Jessie selects Seviper who uses Poison Tail while James calls out Cacnea who uses Pin Missile. Pikachu, however dodges the attacks. As Pikachu prepares to use Thunderbolt, Brawly stops him and explains that using Thunderbolt will make the cave walls crumble. He sends out Hariyama who batters Team Rocket with Arm Thrust, sending them blasting off.
Shauna is keen to battle against Ash, and he agrees to finish their match. Shauna makes the first move, with her Meditite preparing to land a Focus Punch. Ash orders Pikachu to anticipate Meditite's movements like the ocean waves before sprinting into a Quick Attack. However, Meditite surprisingly evades the attack and begins to Meditate. Ash orders a follow up Quick Attack, but Meditite leaps to the left. Brock and the others remark that Shauna has changed her battle strategy, while Brawly adds that she now has focus. Ash urges Pikachu to stay put as Meditite rushes in for a High Jump Kick. Pikachu makes a sudden leap before knocking Meditite out with a direct Thunderbolt. Brawly comments that Ash has improved since their last battle and tells Shauna that he would like to mentor her. Ash tells Brawly that he is ready for their rematch. Brawly agrees and tells Ash that he wants to battle somewhere different; his practice field. He escorts them over to an island and they watch as the ocean splits, revealing a connecting stone path. Ash is determined to be victorious as his battle for the Knuckle Badge is about to begin.