This episode starts with Ash and his friends moving towards Rustboro City. But May, wanting another break, slows down, causing everyone to stop for a break. However, when she leans back into a tree, she discovers that the tree bark has been torn in many places. Speculating as to what is going on, Max suggests that a Pokémon battle has taken place. Ash seems to agree, but later discovers part of a net embedded into one of the trees. Meanwhile, Max discovers that a Pokémon Center is nearby, and Brock proceeds to lead everyone else there.
When they arrive at the Pokémon Center, they meet Nurse Joy. Before Brock can make his move on her, May, believing that it is the same Nurse Joy from Oldale Town, tries to greet her, but is surprised when Nurse Joy doesn't recognize her. As Max tries to tell her that Pokémon Centers are run by a family of (nearly) identical-looking Nurse Joys, Officer Jenny and her Growlithe appear to ask whether Pokémon had recently been admitted to the Pokémon Center, due to the activities of a poacher, named Rico, who is nearby. As Max also explains to May that Officer Jennys are also (more or less) identical, Ash presents Officer Jenny with the part of the net that they had found. Officer Jenny, with a lead on Rico, then asks Ash and his friends to lead her to where they had found it. Ash and his friends agree so everyone quickly leaves the Pokémon Center.
Meanwhile, Team Rocket is on a hill overlooking the Pokémon Center. As they plan to trap Ash and his friends when they return (using their "patented pitfall trap"), Meowth slips and rolls down a hill. At the bottom, he finds a tarp covering a large object, and uncovers that it is a cage full of Ekans. Learning that the Ekans had been caught and abused by a Pokémon poacher, Meowth tries to free them, but finds that their cages are electrified. At this point, Jessie and James (riding Arbok and Weezing) arrive. Outraged at how the Ekans are confined, Jessie orders Arbok to use Acid to free the Ekans, but Arbok is reluctant to attack since it was once an Ekans before evolution and that they are the pre-evolution of it. After being reassured that the Ekans will not be harmed, Arbok once again begins its attack but the cage is inaffective. Weezing tries to use Sludge to help. However, before Weezing can do that, it got attacked by a Fearow.
The Fearow's Trainer then arrives in a SUV. Introducing himself as Rico, a Pokémon poacher, he explains that the Ekans are his. Per his client's request, he is to poach Poison-type Pokémon, which also includes a cage full of Koffing that are in a cage attached to the back of his SUV, with a bonus for every evolved one he can get. He then says he will allow them to leave unharmed - if they leave Arbok and Weezing with him. Having gone through so much with Arbok and Weezing (James claiming that the two are like brothers), and motivated by the Ekans and the Koffing, they refuse, and Arbok and Weezing prepare to defend themselves as Rico orders Fearow to attack. Fearow easily dodges Arbok's Poison Sting and Weezing's Sludge, and lands a Fury Attack on both. When Fearow tries to finish off Arbok with a Drill Peck, however, Arbok catches its beak with a Wrap. Just then, Rico withdraws Fearow for a Pupitar, who proceeds to use Sandstorm to send Team Rocket flying away. Claiming that Arbok and Weezing are too weak for his efforts, Rico leaves to poach more Pokémon.
Meanwhile, Ash and his friends arrive back at where they found the net. Max discovers tire tracks, and Brock surmises that Rico must not have gotten too far. Ash then sends out Taillow to search from the sky. Elsewhere, Team Rocket makes a hard landing, and Jessie is particularly incensed at Rico, and vows to free the Ekans and Koffing at any cost. James, who is also incensed, agrees to use a classic Team Rocket "sting operation". As if on cue, a swarm of Kakuna and Beedrill appear, causing Team Rocket to run for cover. Ahead of them is a Cacnea, who brushes the Beedrill off with a Pin Missile. After thanking the Cacnea with a bag of treats, Jessie and James are resigned to the fact that Rico may have been long gone. However, Arbok, with its body to the ground, could still sense that Rico is near. Saying their goodbye to Cacnea, they run off to get their revenge.
In the meantime, Taillow has located Rico in his SUV, and returns to Ash with the results. Rico is still driving along when Arbok appears from the ground. Before he can take his poaching gun out to subdue Arbok, a layer of smoke appears, caused by Weezing. Using Fearow to blow the smoke away, he discovers that Meowth had used the SmokeScreen to sneak in and pick the locks off the cages (claiming that years of being attacked by Pikachu had allowed him to withstand the electrified cage). When Fearow tries to attack Meowth, Arbok responds by using Headbutt to send Fearow into the cage, knocking it out. Meowth then manages to open the cages and frees the Ekans and Koffing, just as Arbok and Weezing use their attacks to knock the poaching gun out of Rico's hands.
Angered, Rico sends out Pupitar, who promptly evolves to a Tyranitar. Before Team Rocket can make an attack, however, Tyranitar attacks with its own Hyper Beam. With no way to stop Tyranitar, Jessie has an idea, and sends out Wobbuffet in an attempt to Counter Tyranitar's Hyper Beam. However, Tyranitar quickly knocks out Wobbuffet before it can set up an attack. The explosion from the Hyper Beam does not go unnoticed by Ash and his friends, who quickly rush to the scene.
With no other choice (having been boxed in by multiple Hyper Beams), Jessie and James order Arbok and Weezing to leave with the Ekans and Koffing, while they themselves buy some time to allow them to escape. Though reluctant at first, Arbok and Weezing do so. Rico, trying to prevent their escape, tries to use another Hyper Beam to cut them off, but Meowth quickly attacks with a Fury Swipes to his face, which briefly interrupts the attack before he eats the Hyper Beam himself. Jessie and James also use their "Fury Swipes" to stall for time, although they get battered in the process. Arbok and Weezing watch in horror as they witness Team Rocket being beaten up, and with tears in their eyes they leave with the Ekans and Koffing. Eventually, however, Tyranitar prevails over the Team Rocket trio, and Rico simply brushes them aside to look for the escaped Poison Pokémon.
Before Rico can make any headway, however, he encounters Ash and his friends, as Officer Jenny tries to arrest him. Rico quickly sends out Fearow to resist the arrest, however, Fearow is quickly knocked out by Pikachu's Thunderbolt. Officer Jenny also orders Growlithe to knock the gun and Tyranitar's Poké Ball from Rico's hands. With Rico unable to evade arrest, Officer Jenny orders him to let go of the Pokémon he has poached, only for him to tell her that the Pokémon he had poached had escaped, thanks to "a bunch of fools". Ash remarks how, with bad guys like Team Rocket around, there are still good guys in the world.
Later, Jessie and James are seen walking through the forest, wondering if Arbok and Weezing have managed to evade Rico. Although Meowth claims that years of battling Ash's Pokémon had hardened them against any threat, they are still uneasy. Just then, the wild Cacnea who had helped them out earlier reappears, carrying the same unopened bag of cookies. When James asks if the Cacnea would like to come with them (as he is opening the bag for Cacnea), Cacnea happily obliges, poking James as it hugs him. Though they have lost Arbok and Weezing, at least Team Rocket had (literally) caught themselves a new Pokémon.