Ash and his friends arrive in Dark City, which appears to be a ghost town, much to Brock's dismay. They are even more curious to see a parent herding their child off for fear of Pokémon Trainers in the area. As Ash, Misty, and Brock ponder why that is, Pikachu is hit by a rock thrown from the roof of a nearby building. When Ash tells Pikachu to retaliate using a Thunderbolt, they hit three kids on the rooftop. When they go apologize to them, however, they get a cold shoulder treatment, as the kids want the group out of the town. The kids, however, are stopped by a local restaurant owner, who invites them to his restaurant.
At the restaurant, while eating lunch, Pikachu takes a particular liking to eating ketchup from the bottle. The restaurant owner explains to Ash and his friends, as well as a mysterious patron who had happened to overhear, that Dark City has two rival Pokémon Gyms, the Yas Gym and the Kaz Gym. Both Gyms seek official status, but to do so they would need the approval of the Pokémon League inspector, who is scheduled to arrive at any moment. As there could be only one official Gym per city, each Gym seeks to eliminate the other before the inspector arrives. The restaurant owner further explains that Pokémon Trainers who have neared Dark City are recruited for the cause of either Gym. At that moment, fighting between the two Gyms breaks out. As Ash, Misty, and Brock watch from the safety of the restaurant, the three note that the fighting is not as much of a Pokémon battle as it was a gang war. The Yas Gym's Scyther and the Kaz Gym's Electabuzz in particular are dispatching the men of the opposing Gym with ease.
At that point, the safety of the restaurant is shattered when Team Rocket, hired by the Kaz Gym as elite bodyguards, invades the restaurant in disguise and demand food. They send out Arbok and Weezing to deal with the restaurant owner when he refuses because of the Kaz Gym having run up a large tab. Ash sends Pikachu and Misty her Starmie to intercept Team Rocket, but they are beaten by Brock, whose Vulpix quickly forces Team Rocket out of the restaurant with a Flamethrower. Vulpix has now garnered the attention of a female Yas Gym recruiter, who tries to recruit Ash and his friends for their cause. At the advice of Misty, who claims that taking sides would ruin their reputations as Trainers, Ash, looking at Pikachu's ketchup bottle, introduces himself as Tom Ato, Misty as Ann Chovy, and Brock as Caesar Salad. They are then taken to the Yas Gym.
The Yas Leader is introduced to the trio, and proceeds to judge how powerful he is by suddenly releasing his Scyther to attack Pikachu. The Scyther's Cut attack, however, is blocked by Pikachu's ketchup bottle. This resulted in Scyther getting squirted in the eyes with ketchup, blinding it and making it attack its own Trainer. Surprised, the Yas Leader recalls Scyther and asks Ash to join him. When asked why the Yas Gym wanted to be an official Gym, the Yas Leader responds that it is simply a means to earn money quickly, as with official Gym status comes prestige and funding. Because Ash does not see this as a worthy cause, he declines. However, the Yas Leader, mad at Ash for refusing, orders his underlings to physically beat him up with a Hitmonchan, Hitmonlee, Machoke, and Mankey. Ash, aided by Misty and Brock, flee to the restaurant. There, Misty is curious as to why he was able to escape the Yas Gym so quickly and uncovers the answer from Ash's Pokédex: Scyther and Electabuzz are color-sensitive, and the color red in particular will send the two into an outrage. Knowing this, Ash and his friends devise a plan to stop the fighting once and for all by defeating both the Yas and Kaz forces in one fell swoop.
Once again, fighting breaks out on the streets of Dark City between the Yas and Kaz forces. Scyther, using a Swords Dance boosted Cut, manages to destroy Kaz's forces and city buildings with ease. While Electabuzz and Thunder Punch manages to do the same against the Yas forces. When Ash sees an opening, he tells Misty, Brock, the restaurant owner, and the kids to dump tomato ketchup that were stored in barrels on the roofs of various buildings, on all the Trainers, soaking them. This makes Scyther and Electabuzz go into a rage, and they begin to attack their own Trainers. Yas and Kaz, the two leaders, are at Ash's mercy, and Ash decides to end this by having Bulbasaur Vine Whip two barrels of tomato sauce on Scyther and Electabuzz, soaking both. When the two turn to attack each other due to the rage, they run into each other, knocking the two out.
When Ash asks whether the two Leaders have learned their lesson and resolved their differences, the two leaders finally agree to team up and deal with Ash. In response, Ash orders Pikachu to unleash Thunder, shocking both sides. Before any more damage can be done, however, the mysterious patron appears. The patron reveals herself to be Nurse Joy, the Pokémon League inspector, and tells everyone that neither Yas nor Kaz deserved to be an official Gym because street fighting would not be tolerated. However, Nurse Joy allows the two Leaders a second chance, and tells the two that Ash would make a fine tutor with regards to how to be a proper Pokémon Trainer and how to start over as one united Gym, but even "Tom Ato" is at a loss of words with regards to how to be one. However, Ash does manage to tell the two Leaders to repair all the damage to the city that they had caused, and they quickly get started on the restoration.
As Ash, Misty, Brock, and Pikachu leave Dark City, they are met again by the kids from in town. They had quickly become fans of Pikachu and decide to become Pokémon Trainers themselves. Meanwhile, Team Rocket, having been covered in red ketchup just as a building falls on them during the battle, are run out of town by Scyther and Electabuzz in their red-induced rage.