Rustboro City at last! Now that Ash and friends have arrived in Rustboro City, they're taking a moment to sightsee. They bump into a schoolteacher, Roxanne, and her class on a class trip. The kids are about Max's age and one of them, Kenny, is afraid of Pokémon. Roxanne invites the gang back to see the Pokémon Trainer's School. Ash is anxious to get to his gym battle, but Roxanne persuades him to wait. As it turns out, Ash would have had to wait anyway. Roxanne is the gym leader, too! The Pokémon Trainer's School is pretty big and has all kinds of different classes. May is especially interested in a class on Pokémon Contests. Max decides to attend the beginners' class that Kenny is in. He's in the middle of battling the class show-off, Tommy, when the principal comes running in to tell them that the school's Poké Balls have all been stolen. Team Rocket strikes again! Kenny steps in and saves the day by telling Max which attacks will work best, and Tommy cooperates, too. When they work together, the kids are able to defeat Team Rocket and save the Poké Balls. Just to be safe, Roxanne's Geodude sends Team Rocket blasting off again. Now that Ash has seen Roxanne and her Geodude in action, he's really ready for his gym battle!
The group gaze over Rustboro City through its observation tower. Ash emerges dressed in tourist souvenirs, embarrassing everyone else. As Ash tries to apologize, Max notices a Poliwag cowering under a bench. When they manage to get Poliwag to warm up to them, they notice a strange arm-band on the end of its tail. Soon, they are met by a local teacher named Roxanne, who has arrived with her Beginners' Class, a group of students Max's age, on a field trip. She reveals that the Poliwag belongs to one of her students, Kenny, who is afraid of touching Pokémon. Tommy begins picking on Kenny for losing Poliwag, though a fellow student Anita tries to intervene. Roxanne quickly settles her students before ordering them back to the Pokémon Trainers' School. Max is immediately keen to attend, but Ash reminds him that he still has his Gym battle. Roxanne is pleasantly surprised to learn that Ash and May are Gym challengers, admitting that the Rustboro Gym is next door to the academy. With that, the group decides a detour to the school is in order, despite Ash’s reservations.
At the Trainer's School, the headmaster takes the group through the academy, including a Pokémon Contest class that piques May's interest, a Doctor's class taught jointly by a teacher and a Nurse Joy, as well as a battling class that draws Ash's interest. When they enter Roxanne's class, they are greeted by Professor Oak, in the middle of a lecture by videophone. Max is immediately rendered speechless at seeing his idol for the first time, while Ash, Brock, and May take the time to greet the Professor. When Professor Oak asks about whether he or Roxanne had won the Gym Battle, Ash learns that Roxanne is also the Rustboro Gym Leader. As the headmaster explains, Roxanne is herself an alumnus of the Trainer's School, and quickly earned the title due to her prodigy skills. Roxanne, due to having to teach the Beginner's Class, asks Ash to delay their battle for two days, for which Ash accepts.
Seeing Max's enthusiasm for Professor Oak, Tommy begins to quiz him about attacks. Max answers both questions correctly, quickly infuriating Tommy. Roxanne takes the opportunity to speak to Tommy, adding that the students are not supposed to compete, instead they should try to learn together. The principal urges Tommy to abide by the spirit of the school's motto. Continuing on with their tour, the group are led to a room where the academy's Poké Balls are kept and rented out to students. Outside the academy, Team Rocket manages to overhear, and plots to steal the Poké Balls. Ash and company are invited to partake in classes the next day. That night, Pikachu and Ash work on perfecting Iron Tail by slicing through small rocks.
The next day at the academy, Max is introduced to Anita, another Beginner Class student. As he learns, Anita and Kenny aren’t into Pokémon, and that their parents make them attend. Meanwhile, Tommy enters to try to bully Max once again. Anita quickly takes a liking to Max after he correctly answered all of Tommy's questions the other day. Later, after class has started, the kids are interacting with the academy's Pokémon. Interested in becoming a Pokémon Coordinator, May sneaks off for the Pokémon Contest class, only to leave when they have a pop quiz. Meanwhile, Roxanne asks Ash, who she introduces as an elite Trainer, and Brock, who she introduces as the former Gym Leader of the world's premier Rock-type Gym, to be her guest speakers, while allowing the students a chance to interact with their own Pokémon. The children are particularly entertained by Lotad's antics, as its delayed response to a Water Gun order manages to splash Brock in the face. Ash notices Kenny standing towards the back of the classroom, so he tries to persuade him to pet Pikachu in an attempt to ease his nerves. However, Tommy having "accidentally" stepped on Poliwag's tail sparks another fight between him and Max. Anita accuses Tommy of deliberately stepping on Poliwag's tail, but he refutes it. Tommy pokes his tongue out at Max, immediately antagonizing him.
Later on, during the Beginner's Class battle practice, Tommy and Max square off. Roxanne offers six Poké Balls for a one-on-one battle between the two. When the battle begins, Tommy has Magby while Max has Poliwag, putting Max with the type advantage. As Max is contemplating his battle options, Tommy makes the first move with a Flamethrower attack. Max counters with Defense Curl. When Tommy tries another Flamethrower, Max uses Belly Drum. With increased Attack and Defense power, Max chooses not to go forward and attack, and on Tommy's next attempt with Flamethrower, it is replied with another Defense Curl - however, repeated hits are taking their toll on Poliwag. Before Tommy can finish, a school alarm bell sounds, and the headmaster rushes out to tell everyone that the Poké Balls have been stolen. A giant Wurmple robot, piloted by Team Rocket, appears, with a bag of Poké Balls on its tail. Ash attempts to take back the Poké Balls by Thunderbolting Team Rocket fails, due to the attacks hitting the macha's protective screen. Brock's contribution with Forretress' Tackle is countered by Seviper's Poison Tail, while May's attempt with Wurmple's String Shot is met with Cacnea's Pin Missile. Jessie calls out her own Wurmple. May is shocked to see it, and Brock claims it is just like May’s Wurmple. Jessie retorts that comment, admitting her Wurmple is far cuter and so she decides to recall it back to its Ball.
Max wants to join in with Poliwag, but is held back by a shy Kenny, who insists on Max to use an actual attack. Taking the advice, Poliwag's Water Gun hits Seviper. Tommy, not willing to let Max take the glory, orders Magby to attack as well, hitting Cacnea. When Ash tries to help the two out, Roxanne holds him back, insistent on allowing the Beginner's Class their chance to take on Team Rocket by themselves. Kenny formulates a plan where Max and Poliwag distract Team Rocket, while Tommy and Magby overheat the Wurmple robot. As they execute their plan, Poliwag uses Water Gun in the same manner as Pikachu and Thunderbolt before, while avoiding Pin Missile by using Protect. This gives Tommy and Magby the chance to attack the Wurmple robot, while Anita and her rental Pidgey uses Wing Attack to free the Poké Balls. Finally, Roxanne uses her Geodude to send Team Rocket flying with a Rollout. At the end of it all, Kenny has overcome his fear of touching Pokémon and Anita have found renewed interest in Pokémon, while Tommy and Max have resolved their differences. Brock commends Roxanne on her Geodude’s strength before turning to Ash, reminding him that his Gym match won’t be an easy one.