After earning the Thunder Badge, Ash and his friends walk across a bridge and spot a luxury liner in the distance. The group takes a closer look at the ship and they want to get on board, but Brock mentions that they cannot afford it, so they walk away sullen. However, Jessie and James, in disguise as ganguro girls, give them tickets to get on board to participate in a Pokémon Trainer party on board the St. Anne. While they look for the luxury liner, Jessie and James head to a nearby lighthouse to meet up with Meowth. Meowth opens up a call with the boss and Meowth notices a Persian hugging up to the boss, replacing Meowth due to the group’s constant failure. Team Rocket reveals the plan about the party being a ruse to allow Team Rocket to steal Pokémon.
Ash and his friends get on board the ship and head into the main ballroom, noticing all the people, Pokémon and merchandise. Ash notices a battle between as Starmie and a Raticate. Raticate uses Super Fang to break Starmie's jewel, giving Raticate the win. Ash decides to step forward to challenge the Raticate’s Trainer, sending Butterfree out. Raticate attacks with Jump Kick, but Butterfree counts with Tackle. Raticate uses Hyper Fang, but Butterfree uses Stun Spore to paralyze it. Ash prepares to finish the duel, but the Gentleman recalls his Raticate and declares it a draw even though Ash was winning. Meanwhile, James walks by the vendors. A salesman calls him over and convinces him to buy a Magikarp, thinking that the Pokémon is worth a lot of money.
The ship sails out of Vermilion City as Ash and his friends chow down. The Gentleman comes up to Ash and commends his Butterfree. He proposes a trade between his Raticate and Ash’s Butterfree. Ash asks Brock if he should go through with it, but Brock is too attracted to the woman, so Ash goes through with the trade. They go to a trade machine and execute the trade. Ash acquires Raticate while the man gets Butterfree. Jessie and Meowth confront James about buying the weak Magikarp. James reveals that he took Jessie’s salary advance to buy it, which makes her angry and forces him to return the Magikarp. Meanwhile, Misty finds Ash looking out at sea, having second doubts about the trade and unsure if Butterfree will be taken care off. He mentions that as the trade was happening, he remembered the experiences he shared with Butterfree.
Team Rocket’s plan goes into motion, the ballroom being locked down and Team Rocket Grunts confronting the Trainers. The grunts use vacuums to capture the Poké Balls. When one of the grunts walks up to Ash and demands his Pokémon, Ash orders Pikachu to attack the thugs with ThunderShock. He spurs the other Trainers to fight back, everyone sending out Pokémon. Ash’s Pikachu, Charmander, Bulbasaur and Brock's Geodude join with other Pokémon in stopping the Team Rocket thugs. Ash notices a Butterfree swarm attacking with Stun Spore and decides to summon his Butterfree. However, the Poké Ball reveals his Raticate as Misty reminds him that he traded Butterfree. As he watches, Ash deeply misses his Butterfree, remembering his experiences with it and wanting it back.
Ash sends out Pidgeotto to join others in a group Gust attack. The Pikachu group uses Thunderbolt to send Team Rocket flying off the ship and foiling the attack. However, the ship has sailed directly into a storm, strong waves battering the ship. James drops the Poké Ball holding Magikarp and runs after it. Meanwhile, Ash finds the man and requests the trade reversed. The man agrees and executes a reverse trade. The captain tries to call the passengers and assures them that the ship is unsinkable. Another wave crashes against the ship as the captain goes down in a lifeboat. The passengers quickly scramble onto the lifeboats to evacuate. Misty and Brock find Ash finishing the trade. Ash grabs his Poké Ball, but another wave causes him to drop it. Ash runs after it as his friends follow. Most of the passengers get off the ship safely. Ash grabs Butterfree’s Poké Ball as the ship rocks again, throwing Ash and his friends into another room and knocking them out. James gets Magikarp’s Poké Ball as another wave sends them flying against a wall, knocking them out as well. The ship capsizes and goes down as the captain assumes that everyone is safe, not knowing that Ash and his friends are on board, as well as Team Rocket.