The kids land on Muscle Island, where another ferry will finally take them to Mossdeep City. Team Rocket also lands on the island, fleeing their sub because they think it will explode. It sinks instead.
Ash and friends run into a group of people working out. The head of the camp, a guy named Rocky, offers food and the opportunity to train with them. Everyone except for May (who gets dragged in) decides to take up the workout offer.
Team Rocket also starts exercising when James decides that it will help them catch Pikachu better.
Elsewhere, Rocky challenges Ash to a battle, bringing out Walrein and Quagsire. Ash chooses Pikachu and Grovyle. Pikachu can't hit Walrein because Quagsire blocks every attack, immune to electricity because of its dual Ground-and-Water-type. Walrein retaliates with Ice Ball, which hits Ash's Pokémon hard. Ash then realizes that Ice Ball gets slower the more it's used, taking advantage of that delay to let Grovyle use Leaf Blade and Pikachu use its Thunder attack to win.
The kids and Team Rocket manage to scam out of exercising more, and everyone departs on the ferry to Mossdeep City. On board, Team Rocket tries to grab Pikachu again, but in the tug-of-war that ensues, Pikachu shocks everyone and sends both its friends and Team Rocket flying overboard.
Still on their way to Mossdeep City, Ash and his friends arrive at a rocky outcrop known as Muscle Island. Brock consults his guidebook and learns that their next ferry will arrive later on, so they begin to explore in the meantime. Meanwhile, Team Rocket crashes onto shore in their Magikarp Submarine, and they all quickly abandon ship, yelling in fright. After they take cover behind some boulders, Jessie asks Meowth exactly why they had to run. Before Meowth can answer, the sub is swept away by a giant wave and its sinks into the sea. They stare in stunned silence before arguing over their debacle. Then they hear the same chant that Ash and his friends heard earlier, and also decide to investigate.
The source of the chants turns out to be a group of Trainers in the midst of an intense workout. Ash and friends watch as the leader of the exercising group, Rocky, shouts encouragement to his friends. He then approaches the group and introduces himself. Brock asks about any nearby shops nearby, though Rocky replies that there are none. Rocky explains his gym’s philosophy: when Trainers work on improving their strength, it inspires their Pokémon to do the same and thereby become stronger in battle. Seeing as the Mossdeep ferry will be some time away, Rocky invites the group to workout. The boys are all keen, though May decides to sit out of the sweat session. Meowth suggests they all do some training, sharing his vision of a paranoid Giovanni being comforted by the presence of a noticeably bulked-up Jessie, James, and Meowth as his bodyguards. James is fired up, believing that physical weakness is a big reason they keep losing to the twerps and have yet to capture Pikachu, much to his teammates dismay. Suddenly, one of the exercisers, Randy, and asks if they want to join the training program with the others, and James immediately takes up his offer.
Meanwhile, Max tries to lift a steel Poké Ball weight, but struggles to even get it off the ground. May has decided to join in, and is even enjoying herself as she pedals an exercise bike and learns the importance of good footwork in battle. Rocky has assigned Ash and Pikachu to the mechanized rope swing. As the pair try to swap ropes, the task proves more difficult than anticipated. Nearby, Team Rocket are happily running on treadmills. They hesitate when Ash and friends approach, but ignore them and continue to run, sticking to their original plan. Ash warns Rocky that Team Rocket are dangerous, but he replies that they welcome anyone on the island. The group decides to oleave them be as Rocky points out that Team Rocket hasn’t done anything yet, and they seem to be content just working out. As Jessie, James, and Meowth talk to themselves on the treadmill, Rocky suddenly challenges Ash to a battle. The other Trainers boast that Rocky is the strongest Trainer on the island, but that only makes Ash more intrigued. May and the others want to watch, of course, but Rocky says that his camp has a rule prohibiting spectators. Ash and Rocky leave for their battle, and the other Trainers approach May and the others to continue training. Meanwhile, on the treadmill, Meowth figures that maybe this battle will be their chance to get Pikachu, since he will eventually be tired out. However, Jessie and James aren’t paying attention, instead focusing on keeping up their rhythm.
Some distance away, Ash and Rocky take their positions atop two rocks. Rocky announces the rules, saying that it will be a Double Battle, and Ash agrees. Rocky sends out a Walrein and a Quagsire, and Ash counters with Pikachu and Grovyle. Ash starts by having Pikachu fire a Thunderbolt at Walrein, but Rocky has Quagsire step in front of Walrein and take the attack. Ash and Pikachu thought they were off to a good start, but Quagsire emerges unscathed from the attack. Ash then remembers that Quagsire is part Ground-type, so electricity won't work on it. Rocky orders an Ice Ball from Walrein. Pikachu and Grovyle both dodge the move using Quick Attack. Pikachu aims an Iron Tail at Walrein, and Grovyle lunges towards Quagsire for a Leaf Blade, but their opponents switch positions and neither attack does much damage. In fact, Pikachu and Grovyle actually appear to take some recoil. Walrein charges up another Ice Ball, and Ash tries Pikachu’s Thunderbolt again, but Quagsire gets in the way once more. Walrein completes its attack, and the larger Ice Ball scores a direct hit on both of Ash’s Pokémon. It seems that Rocky's strategy has been to train Quagsire to be adept at blocking moves, while Walrein serves as the powerhouse. Ash tells Grovyle to use Bullet Seed, but Quagsire and Walrein take cover behind some rocks. Rocky orders another Ice Ball from Walrein. Ash orders Grovyle and Pikachu to attack the ball with Iron Tail and Leaf Blade, but they aren’t quick enough, and the Ice Ball strikes them again.
At the training area, Max gets an idea. He tells the Trainers that he wants to go get something he left back on the boat. They offer to get it for him, but May and Brock say that the item is really hard to describe, so they’d rather go themselves. They’re allowed to go, so they grab their stuff, and no doubt have to stifle smirks as they pass Team Rocket. Jessie and Meowth are getting tired of working out and they angrily yell at James for letting the twerps go.
Meanwhile, at the battle, Ash has no idea what to do next, but then he notices the time it takes for Walrein to charge its Ice Ball is longer the bigger the Ice Ball is, as Pikachu and Grovyle dodge another one. He then gets an idea. Rocky orders another Ice Ball, and Walrein charges it up. Ash quickly tells Pikachu to hit Walrein with Thunderbolt. As expected, Quagsire takes the attack. It has to stay in one place to do so, so Ash takes advantage of that and has Grovyle Leaf Blade it, for a powerful hit. Pikachu then jumps on Grovyle’s head leaf, and Grovyle throws him towards Walrein. From the air, Pikachu releases another Thunderbolt, scoring a direct hit this time. Quagsire and Walrein both faint, and Pikachu and Grovyle are the winners. Rocky recalls his Pokémon, thanks them for a good battle, and congratulates Ash, complimenting him on his strategy. Rocky admits that he has learned a lot from the battle, and considers the idea of leaving Muscle Island to challenge other Trainers on a journey of his own. Brock and the others show up, curious about the match, and they're glad to hear Ash won. Rocky then points them towards the ferry they need to take.
By sunset, Ash and friends are on a ferry bound for Mossdeep City with Ash excited for his seventh Gym Battle. However Team Rocket are also on the boat, disguised as sailors. James watches the twerps while Jessie and Meowth complain about their sore muscles. James says that now that they’re stronger from their physical training, this is their chance to steal Pikachu. They approach the twerps, and say that they’re not allowed to have any Pokémon on board the ferry and that they'll take Pikachu for "safe-keeping". James reaches for Pikachu, but Ash instinctively grabs James’s arm, as Pikachu cries out. Ash isn't about to just hand Pikachu over to anyone and demands to know who they are, and Jessie and James start their motto. Meowth interrupts to avoid their cover being blown, but his teammates realize there’s no point in keeping the disguises on. Jessie nets Pikachu, but Ash grabs him, and it turns into an all-out tug-of-war between the two sides, both sides desperately trying to keep hold of Pikachu. However Pikachu becomes distressed by the conflict and lets out a massive Thunderbolt which successfully blasts Team Rocket off. However, he also sends Ash and the others overboard and stranded in the middle of the ocean as the ferry continues moving.