Ash's Battle Factory victory has him eager to reach the next Battle Frontier stop right away, but even he has to stop for food and water. Munchlax takes care of the Pokémon food by eating it all, which sets off a squabble that disturbs the local Geodude. The Geodude chase Ash and May's Pokémon, and some of them are separated in the commotion. Ash and May have to find their missing Pokémon!
An Onix leads the Rock-type Pokémon that live in the area, and they're none too happy about the intruders. Team Rocket sees this and convinces Onix that Ash and his friends are up to no good. Phanpy and Squirtle reunite with Pikachu, Corphish, and then Munchlax, but they're captured by Rock Pokémon working with Team Rocket. Elsewhere, Brock is captured as well!
Ash finds Onix and Team Rocket, but now all his friends and their Pokémon have been snagged! Ash tries to tell Onix that he's not a villain, and Onix decides that they'll battle. If Ash wins, his friends go free. If Ash loses... well, he'd better win! Ash choses Grovyle, who has a type advantage against Onix, and wins the round.
Team Rocket tries plan B: steal all the Pokémon outright. But Ash tells Grovyle to defend Onix against their attack, and it's clear now who the good guys are. May and the others are freed, and together everyone protects the wild Pokémon from Team Rocket. Once the villains are sent flying, Onix makes amends by giving our heroes an escorted ride out of its valley.
On his way to the Battle Arena, Ash admires the Knowledge Symbol he received as an award for his victory over Noland. When the water canteen becomes empty, Brock suggests they go search for water while Max and Pikachu look after the Pokémon while he is gone. Mudkip leads Brock and the others to a lake. Meanwhile, after serving all the Pokémon some food, Max decides to take a nap. Munchlax greedily eats everyone's Pokémon food, instantly stirring tensions. Corphish tries to attack Munchlax with Bubble Beam, but it misses and hits Squirtle instead. Squirtle uses Bubble which hits Corphish. Pikachu tries in vain to wake Max up while Squirtle and Corphish exchange attacks, unintentionally disturbing a group of Geodude. The angry Geodude surround the Pokémon, sending Munchlax flying as well as chasing off Pikachu and Corphish. Max rushes over to check what is going on and notices that Munchlax, Corphish, and Pikachu are gone. Ash and his friends return as Max tells them that some of the Pokémon are missing. They decide that they should look for the Pokémon with Mudkip coming along while Brock stays back to look after the remaining Pokémon just in case the others return.
Meanwhile, the angry Geodude go to their clan, consisting of multiple Graveler, Golem, and headed by a single Onix, to report the confrontation. Team Rocket overhears the conversation, and Meowth to translate, they realize the described troublesome Pokémon must be owned by the twerps. The trio quickly put a plan into motion, hoping to use the Rock Pokémon to help them capture Pikachu and the others. Jessie and her teammates convince Onix that Ash and his friends are evil, so it orders its fellow Rock types to get rid of the unwanted threats.
In a flower field, Squirtle is smelling flowers and admiring a large one when a Beedrill pops out and begins to attack. Phanpy uses Hidden Power to send Beedrill away. Squirtle returns to picking flowers until a swarm of Beedrill chase after them. Phanpy puts Squirtle on its back and runs away in fear. To their surprise, they run into Pikachu and Corphish, but keep running away. Pikachu and Corphish see the swarm of Beedrill fast approaching and use Thunderbolt and Bubble Beam to send them away.
Brock starts to get frustrated with everyone taking so long and thinks he should go look for them. A group of Geodude appear and surround him before a locked cage lands on him. Pikachu, Corphish, Squirtle, and Phanpy continue searching for everyone and find Munchlax eating apples in a tree. Geodude and Golem appear and use Rollout to chase them. The Pokémon jump on a log that is in a river and use it to avoid the Rock Pokémon since they hate water. They hit a rock and fall into the water and down the waterfall. Back on land, they end up surrounded by Graveler and Golem and are trapped in a cage as well. Pikachu uses Thunderbolt and Corphish uses Bubble Beam to try to break the cage, but they fail. The captives, Brock and the previously missing Pokémon, remain caged up and surrounded by the Rock Pokémon.
At the bottom of the cliff, Mudkip alerts Ash and his friends to something beyond a cliff. As Ash climbs the cliff, he sees Brock and some of the Pokémon are caged up. As he turns to alert May and Max to the situation, he sees that Team Rocket have now caught them. Team Rocket recites their motto to their truly captive audience and everyone realizes that the Rock Pokémon for some reason are working for the trio. Meowth says that they've waited a long time to capture Pikachu and finally have. Team Rocket thanks Onix for capturing the twerps and the Pokémon, requesting that they keep them from ever harming Pokémon again. Ash steps in hoping to convince Onix that he would never hurt the Rock Pokémon and that Team Rocket are the ones trying to steal all of the Pokémon. Onix doesn't know who to believe and Meowth translates that Ash must defeat it in a battle to prove that he has to be telling the truth. Team Rocket realize their ploy may quickly be undone as Ash brings out Grovyle to battle Onix. Brock warns that Ash must be careful since Onix is at a high level, despite being at a great disadvantage against a Grass-type.
Onix uses Slam, but Grovyle dodges and uses Quick Attack, hurting itself against Onix's hard body. Onix knocks Grovyle into the surrounding cliffs. Grovyle lands a hit with Bullet Seed. Onix tries to use Bind, but Grovyle avoids it. Grovyle uses Bullet Seed again but this time at Onix's head, causing major damage. Grovyle then finishes it off with Leaf Blade. Team Rocket panics and thinks that they should just grab Pikachu and run for it. Though Meowth suggests they should also take the powerful Onix with them, so the trio deploy their latest mecha. They hurl a giant boulder toward Onix, though Grovyle uses Leaf Blade to reduce the rock to rubble. Onix finally realizes where Team Rocket's loyalties lie, and it orders its fellow Rock Pokémon to break the cages and to protect Ash and his friends from harm. Team Rocket douses the Rock Pokémon with water from the mecha's water cannons, knocking them all out. They use the robot's arms to grab Pikachu and Onix while trying to make their getaway, but the Rock Pokémon are holding them back. Mudkip uses Water Gun, Corphish uses Bubble Beam, and Squirtle uses Bubble to break the arms of the robot. Pikachu uses Thunderbolt and Onix uses Iron Tail to send Team Rocket blasting off. As thanks for helping the Rock Pokémon fight Team Rocket and perhaps an apology as well, Onix gives Ash and his friends a ride on its back as it transports them towards the Battle Arena.