As a part of their extracurricular lesson in Kanto, Ash and his classmates from the Pokémon School have arrived at the Cerulean Gym to learn about Gym battles. Upon entering the Gym, the group notices something standing in the middle of the battlefield, which Ash recognizes as Psyduck. Misty thanks Psyduck for looking after the Gym while she was away, and then properly welcomes Ash's class to her Gym. Professor Kukui properly introduces Misty as the Water-type Gym Leader of the Cerulean Gym and Brock as the former Rock-type Gym Leader of the Pewter Gym.
Kukui proceeds to explain how in Kanto, a Pokémon Trainer can travel from Gym to Gym to challenge Gym Leaders, and, if victorious against one, will earn that Gym's respective Badge. To demonstrate, Misty and Brock introduce their respective Badges, the Cascade Badge and the Boulder Badge. Kiawe asks Ash if he collected all the Badges in Kanto. Ash confirms it, though Misty and Brock remind him that he got their Badges out of pity, causing his classmates to look at him questioningly. To avoid answering, Ash changes the subject, mentioning how Trainers with eight Badges are allowed to challenge the Pokémon League, a battle tournament full of strong Trainers. When Kukui asks if anyone wants to battle Brock or Misty, everybody raises their hands. Misty subsequently decides to organize Multi Battles, allowing them all to have battles against them.
First, Mallow and Lana team up against Misty, with Steenee and Popplio facing Psyduck. As Rotom starts recording the battle, Steenee and Popplio use Magical Leaf and Bubble Beam, respectively, which hit their shared target. Misty has Psyduck use Water Gun, but Popplio creates a balloon that absorbs the move. Popplio then launches the balloon at Psyduck, who gets trapped inside. Misty mentions that her Psyduck is strong when in a pinch and orders it to use Confusion, but nothing happens. Ash, not surprised, explains how Psyduck is a bit slow. Mallow has Steenee use Magical Leaf again, which bursts the balloon and causes Psyduck to fall on its head. This triggers Psyduck's hidden Psychic powers, and it hurls Steenee and Popplio into the air with Confusion. However, before anything else can happen, Misty tells Psyduck to bring Steenee and Popplio back down, and Kukui declares the battle is over.
Next up are Sophocles's Togedemaru and Lillie's Snowy against Brock's Geodude. Sophocles starts the battle with a Zing Zap, which however, much to Sophocles's shock, is completely ineffective against the Rock Pokémon. Brock explains that while Alolan Geodude may be a Rock/Electric type, Kantonian Geodude is Rock/Ground, making Electric attacks useless against it. While Sophocles feels embarrassed for having forgotten about regional variants, Lillie has Snowy attack with Powder Snow. However, Geodude uses Gyro Ball, deflecting the attack. Sophocles is surprised to see Gyro Ball being used as a defensive move, and Brock explains that a "certain challenger of his" taught him how to battle like that, looking at Ash in the stands. Kukui then comments how these battles demonstrate the fact that a Pokémon's type, moves, and the way it's raised can create infinite new ways to battle. Sophocles admits that knowing the opponent is important to avoid making mistakes like the one he just did. With Kiawe and Ash's turn coming up, Kiawe requests to have a serious battle against Brock, while Ash wants to have a similar battle with Misty. Pleased by this unexpected turn, Kukui tells them to not hold back.
The first serious battle takes place between Brock and Kiawe, with Misty working as the referee. She declares that the battle will be one-on-one, with the battle being over once one side's Pokémon is unable to battle. Declaring his confidence in his battling skills, Kiawe sends out Turtonator, while Brock sends out his own partner, Steelix. While Rotom gives Steelix's Pokédex entry, Sophocles deduces that as a Fire type, Turtonator has an advantage over its Steel-type opponent. However, Lillie reminds him that Steelix is also a Ground type, making the odds fifty-fifty typewise. Kiawe begins the battle with Flamethrower, which makes direct contact. However, Brock has Steelix use Gyro Ball, repeating his deflecting tactic from before with Geodude to repel the flames. He then has Steelix use Bind, but even when binded, Turtonator is able to use Shell Trap, causing Steelix to be blasted away from it. Kiawe then has Turtonator use Dragon Tail, but Steelix avoids the attack with Dig, seconds later launching its own counterattack against the Blast Turtle Pokémon. Knowing that dragging the battle on won't do them any good, Kiawe decides to use his Z-Move to finish the battle immediately. Brock, however, having heard of Z-Moves, decides to go all out himself as well, pulling off his shirt and revealing a necklace with a Key Stone on it. He taps the stone, causing it and the Steelixite on Steelix's forehead to glow and making Steelix Mega Evolve into Mega Steelix, shocking Kiawe. In the stands, Kukui explains to Ash's classmates that Mega Evolution is a phenomenon triggered by the bonds between a Pokémon and its Trainer, allowing it to power up mid-battle. Brock tells Kiawe to show him his Z-Move, which he starts performing immediately. With the poses done, the Z-Powered Turtonator fires its Inferno Overdrive at Steelix, resulting in a huge explosion. However, as the smoke clears, Steelix is still standing, much to everybody's shock. Brock comments that the Z-Move certainly did its number on Steelix, but wasn't quite enough to finish the job. He then orders a Stone Edge from Steelix, and while Kiawe tries to counter it with Dragon Tail, the move still hits, causing Turtonator to faint and Kiawe lose the battle. Ash's classmates are shocked that Kiawe lost and marvel at the power of a Gym Leader. As Steelix returns to its normal form, Kukui explains that Mega-Evolved Pokémon return back to their normal states once the battle is over. Brock recalls Steelix and puts his shirt back on as Kiawe comforts Turtonator, only to be attacked by his Marowak, who's angry at them for losing.
While Ash's classmates express their excitement of having witnessed such a battle, Ash himself runs down to the battlefield to face Misty. Misty presses a button on a remote, causing the rocky field to sink into the floor, after which it's filled with water, creating a water field, leaving only some rock formations standing above the surface. Kiawe and Sophocles express their bafflement about Ash's excitement over the field change, which should put him at a disadvantage, but Ash assures them that he's alright. Unsurprisingly, Ash chooses to use Pikachu, while Misty sends out her Gyarados as Brock takes his position as the new referee. Ash has Pikachu attack with Thunderbolt, but Gyarados blocks the attack with Hydro Pump. Misty comments how Water moves can be used to block Electric moves, confusing Rotom. Pikachu then charges in with Quick Attack, hitting Gyarados straight in the face. Ash tells Pikachu to follow up with Electro Ball, but while the attack is charging up, Misty has Gyarados use Rain Dance, causing a rainstorm to appear inside the Gym. As Pikachu launches his attack, Misty calls for a Hurricane from Gyarados, which dissipates the Electric attack before it can hit the Atrocious Pokémon and blows Pikachu back in the process. Kukui admires Misty's strategy of using Hurricane in rain to shut down the Electric attacks that her Pokémon are weak against.
As Ash asks Pikachu if he's okay, Misty reveals her own Key Stone hanging on her hairband, causing Ash to flinch at the sight of another Key Stone owned by a friend of his. Bonding with the Gyaradosite on Gyarados's forehead, Misty's Key Stone triggers the Mega Evolution of her Gyarados, turning it into a Mega Gyarados. Ash smiles at the sight of this, and Misty has Gyarados attack with Hydro Pump, which sends Pikachu flying into the water below it. Gyarados follows up with Crunch, but Pikachu manages to get back onto a solid surface, allowing him to use his full maneuverability to avoid the attack. Ash tells Pikachu to use Iron Tail, which he manages to execute after climbing onto Gyarados's back, striking the massive Water Pokémon across the face and sending it underwater. Misty compliments Ash and Pikachu, before having Gyarados use Hurricane underwater, creating a cyclone of water around Pikachu. Pikachu tries to use Thunderbolt on the vortex, but the electricity just gets stuck on its sides. Misty comments that no challenger has ever been able to break her combination of Rain Dance and Hurricane. Ash, however, merely comments that breaking through stuff like this is what makes battles fun for him. To everybody's confusion, Ash tells Pikachu to climb out of the Hurricane, using Quick Attack to bounce off the electricity still circling on its sides. While everybody expresses their surprise of this unpredictable move, Ash and Pikachu begin performing their own Z-Move, Gigavolt Havoc. The devastating Electric attack is fired at Gyarados, who is unable to sustain the damage and faints, winning the battle for Ash. Misty compliments Ash of his increased strength, but also comments how he's still childish, irritating Ash. Meanwhile, the rest of the group is filled with excitement over these great battles, and Kukui tells everybody to remember what they experienced, even when they return to Alola.
At the airport, Brock and Misty hand Ash's class some replica Badges as commemorations of their battles, with all the girls getting Cascade Badge replicas and all the boys getting Boulder Badge replicas. Kiawe tells Brock that the next time they battle, he'll be earning a real Boulder Badge. Turning to Professor Oak and Samson Oak, Kukui says that this experience has given him confidence to realize his dream of making the Pokémon League culture take root in Alola as well. Brock and Misty approach Ash, telling him that they had fun during this reunion, it having reminded them of the old days when they used to travel together. Ash invites the two to come visit Alola sometime, and they gladly accept the offer. And while Ash's class flies back towards Alola, they're completely unaware of Jigglypuff having secretly boarded their plane as well, riding on its tail.
Meanwhile, Team Rocket are also on their way back to Alola, still being carried there by Bewear, who apparently has been running on water nonstop for three days now.