Walking along a twisted path on their way to Ecruteak City, Ash, Misty, and Brock feel a loud noise and a slight rumbling coming from behind them. It happens to be a runaway Tauros, with its trainer in close pursuit. After nearly avoiding being trampled, Ash spots an unsuspecting old man down the road. Knowing the man is in real danger, Ash slides down the hill to save him.
The old man sees the mad Pokémon approach. He pulls out a Pokéball, but Ash suddenly jumps in and sends out Bulbasaur first, commanding it to use Vine Whip. Bulbasaur does so, wrapping its vines around its horns as it jumps over Tauros, preventing it from going any more forward. Tauros stops, and diverts its attention to Bulbasaur. It charges forth, but Bulbasaur dodges at the last minute. Tauros comes around again, but Bulbasaur dodges once more, restrains it with a Vine Whip, and puts it to sleep with Sleep Powder. The owner of the Tauros thanks Ash for the help, while at the same time the old man, Kenzo, approaches and invites the gang to his Pokémon Dojo not too far away.
Approaching the dojo's entrance, the gang can hear voices from inside. Ash asks who it is, and Kenzo replies that it's his foolish granddaughter's idea of training. Inside, the group sees a young girl with a Hitmontop instructing a group of students on how to make their Fighting Pokémon's attacks more graceful. Afterward, she dismisses the children, and as they pass Kenzo, they stop to bow for him. Misty asks why the trainers did that, and Kenzo tells her that he is the Shihan of the dojo. Ash remembers having "Shihan" at a Chinese restaurant before, and everyone collapses. Brock gets up and explains to him that a Shihan is the master teacher of a dojo. Ash remarks that he thought it was chicken in garlic sauce.
Kenzo's granddaughter, Chigusa, approaches and asks who the guests are. Kenzo introduces her to Ash, saying that he is going to replace him as Shihan of the dojo. Everyone's startled by this, including Ash himself. Infuriated, Chigusa argues with her grandfather, as she was supposed to be the next Shihan of the dojo. Kenzo bursts out into laughter, telling her that he'd never let her be Shihan since she only teaches Pokémon how to win at dance contests. Ash tries to settle the feud, suggesting that there might be another way to resolve this without having to argue. Chigusa agrees, and challenges Ash to a battle. He refuses, not wanting to take over the dojo as she keeps pushing him to send out one of his Fighting Pokémon. Ash tells her that he has none, and Chigusa gets even angrier at the fact a trainer without even a Fighting Pokémon is planning to take over. Kenzo tells Chigusa that Ash's Bulbasaur is like a fighter, perhaps even more than her Hitmontop. Now reaching the boiling point, Chigusa demands a battle from Ash, but he still refuses. Suddenly, a man, who introduces himself as Shiro, approaches, challenging Kenzo to a battle. Chigusa recognizes that name, calling him the "Dojo Destroyer"; a Fighting Pokémon trainer who travels from dojo to dojo, beating the Shihans and collecting the plaques in front of their doors. He explains that he wants to open his own Fighting Pokémon Dojo back home, and with all the plaques he'll win, the respect of his students is bound to be earned. Kenzo agrees to battle, and takes the group to the arena. Nearby, Team Rocket is spying on the situation, plotting to steal the Hitmontop.
At the arena, Kenzo and Shiro are about to face each other. Shiro sends out Hitmonlee, and as Kenzo sounds out Machoke. However, the old, worn out team of Kenzo and Machoke begin to have back problems, making them unable to battle. Chigusa offers to take his place in battle. Kenzo refuses, but with no other choice, he eventually reluctantly agrees.
Now against Chigusa, Shiro starts things off with Rolling Kick. Hitmontop blocks, and does the same attack back. Hitmonlee gets into a defensive stance and wards off all kicks thrown at it. Hitmontop then uses Rapid Spin as it spins on its head like a top. Chigusa orders Hitmontop to use Triple Kick, but Hitmonlee dodges all three attacks and knocks Hitmontop off balance with Double Kick. It then uses Jump Kick, followed by Hi Jump Attack, making things look grim for Hitmontop. Just as Shiro finishes Hitmontop off, a giant cloud of smog temporarily blinds the group.
When the smoke clears, our heroes find Hitmonlee and Hitmontop in a net being hauled away in Team Rocket's balloon as Jessie and James perform their motto in ninja outfits. Ash commands Bulbasaur to use Razor Leaf, breaking the net and releasing Hitmonlee and Hitmontop. Jessie sends out Arbok to use Poison Sting while James calls for Victreebel. Hitmonlee dodges the Poison Sting, and Shiro orders it to retaliate with Jump Kick. However, Victreebel to uses Sleep Powder, disabling Hitmonlee and stopping the attack. As Victreebel goes down to attack Hitmontop, Pikachu rams into it, knocking back into the balloon. Bulbasaur grabs Arbok using Vine Whip and does the same. Bulbasaur ends this with a Razor Leaf, puncturing the balloon as Team Rocket is blown away. Shiro decides that his Pokémon have had enough for the day, and decides to finish the battle tomorrow. Chigusa agrees.
That night, Chigusa is hyped over finishing the battle. Kenzo tells Chigusa that she has no chance of winning if she performed like she did this afternoon, and tells her that she needs more training. Kenzo then turns to Ash and asks if he and his Bulbasaur can teach his granddaughter a few of his techniques. Knowing the reputation of the dojo is at stake, Ash agrees to teach Chigusa, and she agrees to be taught.
Kenzo decides that if his granddaughter needs to learn how to battle, then she must have an actual battle with Ash. Ash tells Bulbasaur to begin spinning his vines like Hitmontop's Rapid Spin. Chigusa comments on how cool it looks, then tells Hitmontop to attack. Bulbasaur dodges Hitmontop's kicks, so Chigusa tells Hitmontop to keep its form up with Rapid Spin and a few Triple Kicks. Bulbasaur dodges all three blows, and tries to use Vine Whip to bind Hitmontop's legs together. Hitmontop evades the first few attacks, but is eventually rounded up. Immobile, Hitmontop is tackled, and Bulbasaur wins the match.
Chigusa asks Ash his secret to success, but he tells her it's hard to explain why. Kenzo comments it's because Ash and his Pokémon work as team. When Hitmontop uses Rapid Spin, it leaves it susceptible to attacks, and that is what Chigusa has failed to understand. Chigusa finally realizes the mistakes of her ways, and dedicates herself to become better, training all that night long with Ash and Bulbasaur.
The next morning, Chigusa and Shiro are once again standing in the field. The battle commences, and both Hitmonlee and Hitmontop exchange blows. Chigusa orders Hitmontop to use Rapid Spin, and as Hitmonlee unleashes a salvo of Rolling Kicks, Hitmontop dodges. Hitmonlee then tries to use Double Kick to knock it off balance, but Hitmontop blocks this time. Shiro then has Hitmonlee use Hi Jump Kick, as Chigusa tells Hitmontop to go into an upright Rapid Spin, using Triple Kick and then leaping high into the air to attack on Hitmonlee from above. Hitmonlee falls, and Chigusa arises victorious.
Team Rocket comes back unexpectedly for a second appearance in a giant Meowth tank. The hands of the tank extend to grab Hitmontop, but Bulbasaur cuts it off with Razor Leaf. The other hand launches, so Hitmontop uses Rapid Spin to knock the fist back. Pikachu finishes them off with Thunderbolt, destroying the tank, blasting Team Rocket off into space.
That evening, Chigusa admits to having a lot to learn, and agrees to let her grandfather train her to become a Shihan. The two bid the gang farewell, and Ash, Misty, and Brock head off once more.