ZigZag Zangoose! (Japanese: ザングースVSハブネーク！ライバル対決！！Zangoose VS Habunake! Rival Confrontation!!) is the 48th episode of the Advanced Generation series, and the 322nd episode of the Pokémon anime. It was first broadcast in Japan on October 23, 2003 and in the United States on October 23, 2004.
Ash and friends are traveling when a Zangoose runs up in front of them. It is followed by its Trainer, their old friend Nicolai. Ash challenges Nicolai to a Pokémon battle.
The battle is being watched by Team Rocket. Jessie sends out her Seviper (to steal Pikachu), but Zangoose senses it and the two Pokémon start to fight. They fall into the river, and Ash sends Corphish to drive Seviper off so they can rescue Zangoose.
While the injured Zangoose is recovering back at their camp, Ash shows Nicolai how to battle Seviper. Team Rocket returns and the battle between Zangoose and Seviper continues. James and Meowth steal Pikachu while Jessie is helping her Seviper.
The friends go to get Pikachu back, but James' Cacnea accidentally sends Pikachu flying. Wobbuffet grabs Pikachu and runs off, trailed by everyone.
Nicolai notices that they can't catch Wobbuffet because it's running in a zig-zag pattern, so he instructs his Zangoose to do the same to avoid Seviper's attacks. Zangoose then uses Crush Claw to win the battle, while Pikachu uses Thunder to send Team Rocket blasting off again.
Nicolai congratulates Zangoose, and Ash and Nicolai continue their battle.
On the way to Fallarbor Town for May's next Pokémon Contest, the gang meets a pair of Zangoose. When the larger of the two starts talking, they recognize it as their old friend, Nicholai. As they set up a picnic, Nicholai tells them that he went to the Petalburg Gym. May asks Nicholai if he saw their dad. Nicholai explains that after he told Norman and Caroline that he is a friend of May and Max, they invited him for dinner and accepted his Gym challenge, which he lost. He says that Norman must have worn short shorts during training, irritating May and Max. Patting May on the back as she scolds him, Nicholai explains that he wants to get stronger, and Ash challenges him to a battle refereed by Brock. As the battle begins, Nicholai gets into a Marshtomp costume, and sends out Marshtomp. Noting that Nicholai's Mudkip has evolved since their last meeting, Ash chooses Treecko. Nicholai tells Marshtomp to use Water Gun, but Ash has Treecko dodge it and use Quick Attack. However, Marshtomp follows Treecko while still firing its Water Gun, stopping Treecko's Quick Attack. Then, Marshtomp uses Mud Shot to knock Treecko over. Nicholai tells Marshtomp to use Iron Tail, but Treecko manages to get up and retaliate with Bullet Seed before knocking Marshtomp down with Pound.
Meanwhile, Team Rocket watches the battle from behind the bushes, and plot to steal Pikachu during the battle. Jessie sends out Seviper in preparation for an attack. Back on the battlefield, Nicholai takes off his Marshtomp costume and replaces with the Zangoose costume. Then, he sends out his Zangoose and orders it to use Swords Dance. Zangoose starts the move, only to freeze as it senses something. Nicholai asks what is wrong, but Zangoose just walks away, and disappears into the bushes. A moment later, Team Rocket runs out of the bushes, followed by Zangoose and Seviper, glaring at each other in anger. Ash asks Team Rocket what they are doing there, but after they say the first sentence of their motto, Zangoose and Seviper interrupt and roar fiercely. Max explains that Zangoose and Seviper are arch enemies. Brock says that they will start to fight and not give up. After tackling each other, they look at each other. Meowth jumps in and tells Seviper to forget about Zangoose and just capture Pikachu together, but he only succeeds in being whacked with Seviper's tail. Meowth is sent rolling down the hill with Team Rocket and falling into the river.
Seviper wraps Zangoose, and Zangoose bites Seviper. Nicholai tells Seviper to stop but is knocked over by the two Pokémon. The two Pokémon fall in the river. Flowing down the stream, Seviper uses Poison Tail and Zangoose hits a rock, unconscious. Just as it is about to attack Zangoose again, Ash sends out Corphish, it uses Bubble Beam to attack Seviper, and carries Zangoose to shore. Zangoose seems to be hurt really badly. Then, Brock explains that he will help to heal it. After mixing the medicine, he passes it to Nicholai. He feeds Zangoose the medicine. Max says that Zangoose will not stop until it gets revenge. As Team Rocket sit near the river, Seviper suddenly jumps out of the river and lands near them. Without thinking, James yells at it and wants Seviper to apologize. Just then, James immediately apologizes as he notices Seviper’s anger. He kneels and pleads for forgiveness and Seviper decides to forgive him. Then, Meowth asks Seviper if he is finding Nicholai’s Zangoose, and he nods. Then, Meowth says that Seviper still wants to battle Zangoose. Jessie chimes in and says that there IS a fierce hatred in the world, just like her hatred towards Cassidy. If she sees Cassidy, she wants to kill her. So Jessie, being sympathetic, decides to take Seviper’s side and help find and defeat Zangoose.
Back to the other side, Ash and Nicholai do some Pokédex research for information on Seviper. Then, they decide to try it themselves. Nicholai gets into a Zangoose costume, and Ash gets into a Seviper costume. Then, they start to run at each other, and Seviper uses its tail to knock Zangoose down. Nicholai cries out in pain, Ash then realizes Seviper’s strength. Zangoose gets up. Seviper is about to use its tail again, but Zangoose dodges it. Then, Seviper bites Zangoose. Skitty lets itself out of its Poké Ball, and May runs after it. Zangoose hears Seviper nearby and runs off to battle, even in its weak state. It turns out Jessie and Seviper were using a microphone to amplify Seviper's voice. Zangoose runs into the clearing, with the gang close behind. A battle ensues; during the battle, James and Meowth snatch Pikachu and Ash and everyone else besides Nicholai run off to chase them.
James sends out Cacnea to slow them down with Pin Missile. James and Meowth say the Team Rocket motto together. Ash begins charging after them, but Cacnea uses Sandstorm sending Ash flying and landing on them, knocking Pikachu's cage out of their hands. Back to the epic battle again, Seviper uses Bite and then Poison Tail, but Zangoose avoids as it begins to tire. Before Seviper can do something, Pikachu's cage falls from the sky and interrupts the battle, with Ash and the rest close behind. Wobbuffet somehow ends up with the cage and everyone begins chasing it. Jessie yells at them to stop. Ash swipes the cage from Wobbuffet's hands. The epic battle resumes, with Zangoose trying out a new strategy. Zangoose eventually wins and knocks out Seviper with a Crush Claw. Team Rocket attempts to get back Pikachu. James sends out Cacnea, hitting them all with its Pin Missile, but a Thunder from Pikachu blasts them off once again. Nicholai congratulates Zangoose on its great battle skills, and agrees to let it rest after that showdown with Seviper. However, Ash and Nicholai never finished their match, so they decide to continue. Nicholai sends out Zigzagoon and Ash battles it using Pikachu. The battle rages on with the winner unrevealed.
Once again, Ash and Nicholai's battle is cut off at the end of the episode, leaving the outcome a mystery.
In Pokémon Trainer's Choice, all three choices are somewhat correct. Dewgong's Ice-type is effective against Ninjask's Flying-type, Torkoal's Fire-type is effective against Ninjask's Bug-type, and Nosepass' Rock type is actually effective against both of Ninjask's Bug/Flying types, which would make Nosepass the most effective choice.