Ash is now three months away from Ever Grande City and the Hoenn League, while May is gearing up for her next contest in. But after they stop for a rest, two of May's Poké Balls suddenly vanish! All evidence points to a Linoone as the culprit. Ash tracks it to a house and meets Kimmy and his family. Kimmy is a boy whose Linoone, Token, is obsessed with collecting round objects—even if they're not his! Kimmy and his parents help search, but there's no sign of May's Poké Balls until Token appears with the Poké Balls still in his mouth.
Team Rocket, impressed by Token's Pickup ability, capture Token and fly off in their balloon. Kimmy tries to stop them but falls and gets hurt, which startles Token into dropping the Poké Balls. Pikachu frees Token but Team Rocket simply grabs Pikachu instead and flees.
Token chases Team Rocket's round balloon—it likes round objects because it used to play Fetch with Kimmy when it was still a Zigzagoon. James' Cacnea tries to stop Token with Needle Arm, but this accidentally pops the balloon and lets Token rescue Pikachu. Team Rocket come back for more, so Token and Pikachu hit them with a double Thunderbolt and blast them off at last! Kimmy now understands that even though Token changed when it evolved, the two of them are still friends.
The ship docks at Giban Island, and Ash calls Professor Oak from the Pokémon Center. Ash says he plans to do some serious training before the Ever Grande Conference, and Oak replies that he and Pallet Town will cheer Ash on. Later, at their campsite, Ash is anxious to do some training, and runs off with Pikachu. May gets excited again about her Contest, saying that if she wins, she’ll qualify for the Hoenn Grand Festival. She begins to polish her Poké Balls in preparation. Meanwhile, we see something watching from the bushes. Once she has her Poké Balls all polished up nicely, she puts them back into her bag, one by one. She takes Combusken's and Skitty's Balls, but when she looks up, the Balls containing Bulbasaur and Beautifly are gone. May freaks out and frantically looks around before alerting Brock and Max to the situation. Max instantly says it must have been Team Rocket, who unbeknown to the group are watching. Jessie is at least thrilled to have been blamed for the theft. Suddenly, Max notices some footprints around the picnic table, so they decide to follow them in the hopes of finding the thieving culprit.
Ahead, Ash is about to send out a Pokémon to start training, but is suddenly knocked from behind by a charging Linoone. Ash and Pikachu go flying, and upon landing, Ash checks out Linoone in the Pokédex. Linoone runs off, breaking the trail’s handrail in the process. The next thing Ash knows, a foot lands on his back. May, who accidentally stepped on him in her hurry, turns around in surprise. Max and Brock show up as well, and Max asks if Ash just saw a Pokémon run by. Ash replies that he saw a Linoone with puffy cheeks, and May is quick to assume it must have her Poké Balls. Aware that Linoone only travel in a straight path, they follow the forest trail which leads them to a house.
Inside, a young boy sadly throws an empty battered Poké Ball across an empty room. Ash and friends appear at the entrance and Ash asks if he’s seen a Linoone. May explains that it stole two of her Poké Balls. The boy is quite upset by this, and apologizes profusely, admitting that his Linoone, nicknamed Tokin is a troublemaker. Kimmy’s parents Korban and Harmony appear now and greet the group. Kimmy now takes Ash and friends to a shed which contains an abundance of various round objects. Ash and friends are surprised at the collection, and Kimmy sheepishly explains that this is all Tokin’s doing. Max is surprised, and Kimmy goes on to explain in a flashback that back when Tokin was a Zigzagoon, he often played fetch with it using its Poké Ball. Tokin loved this game, but took things too far. Ever since it evolved into a Linoone, it’s been habitually bringing back any round object it can find, and storing them at home. Ash says that this reminds him of how his Charizard used to misbehave, but confidently says that Charizard is over that now. Kimmy asks how he did it, and Ash says it was persistence. Meanwhile, May has been searching through the loot for her Poké Balls, but cries out after being unable to find them.
Kimmy says that Linoone sometimes hides things in the surrounding forest, so everyone heads out there. Ash and friends are surprised at the size of the place. Korban comforts May by saying that they’ll all help her search, and May thanks him. They begin searching in bushes, in trees hollows, and so on. Harmony spots something shining inside a crack in a tree stump, and pulls out a ring. She and her husband are both delighted at the recovery of this ring and they promptly start dancing. Meanwhile, Pikachu peers into a hole in another tree stump, and cheers when it finds something. May runs over, thinking Pikachu found her Poké Balls, but she freaks out when Pikachu hands her a bone instead. Max instantly recognizes it as a Thick Club and explains that it enhances the strength of Cubone and Marowak. Pikachu points at the stump’s hole again, and inside they find a Soothe Bell and Dragon Fang, but May is disappointed because her Poké Balls aren't among the items. Brock now explains to the group about Linoone's Pickup Ability, and observes that this particular Linoone seems to be quite good at finding valuable things. Hiding nearby, Team Rocket are thrilled to hear of Linoone's ability to find valuable things, and James says they should steal it for the Boss. Meowth has a fantasy of Linoone repeatedly zipping by and dropping off presents galore for Giovanni, so the trio set their sights on nabbing Linoone.
Later Kimmy spots Tokin standing on an overhead cliff, alerting the rest of the group. Kimmy calls to it, saying they need those Poké Balls back. Tokin shakes its head and turns around, but just then, it’s caught in a net. Everyone is startled, but of course, the net is coming from Team Rocket’s balloon. Team Rocket says their motto and starts to leave. Kimmy desperately climbs up the cliff after them, demanding Tokin be returned. Jessie sends out Seviper to do a Haze, preventing Kimmy from going any further. He cringes and steps back, but loses his footing and falls. Ash calls out, and Linoone finally drops the Poké Balls in surprise. Kimmy lands, beaten, at the bottom, and his parents rush to his aid. May’s Poké Balls land next to her, and she happily picks them up. May and Ash now turn their attention to Team Rocket. Ash tells Pikachu to go rescue Tokin, so Pikachu begins running up the cliff. James sends out Cacnea to deal with Pikachu, but Cacnea first hugs James. Ash has Pikachu use Iron Tail to cut Tokin free of the net. It does, and Linoone is sent falling! Kimmy starts to run towards it. Jessie calls for a Poison Tail, and Pikachu repeatedly jumps back to avoid the attack. It makes a final jump to land on Seviper’s head. Seviper tries to shake Pikachu off, but it hangs on. Meanwhile, Kimmy is able to revive Tokin, and they have a tearful reunion. Ash calls for a Thunderbolt, and the attack hits Seviper and sends it back at Team Rocket’s balloon. It appears to explode, and Ash and Pikachu cheer.
But when the smoke clears, Team Rocket is still there, revealing that they have since upgraded their balloon. Meowth hits a button that sends out another net, this time ensnaring Pikachu. Ash runs up the cliff after it, as Team Rocket cheers and Pikachu struggles in the net. Everyone else catches up now, and Kimmy apologizes, blaming himself and Tokin for Pikachu’s capture. Ash says not to worry, he’s gotten Pikachu back from them before. Tokin now notices the Poké Ball balloon and gives chase after remembering the games of fetch it used to play with Kimmy. Kimmy sheepishly admits that he hadn’t been playing fetch with it nearly as often since it evolved into Linoone, and Brock realizes that Tokin kept going after round things because it was feeling neglected. Kimmy now realizes how much it loves him, and asks Ash if it’s okay if he and Linoone handle getting Pikachu back. Ash says to go for it, so Kimmy runs ahead and tells Tokin, who had been hesitating on the edge of the cliff, to “go get that ball”. Linoone happily nods, and with the added confidence, is able to steel itself and jump far enough to reach the balloon. When it lands on top of the balloon, Jessie and James are delighted, because they think it wants to go with them. But Meowth quickly explains that it’s actually trying to stop them. James orders a Needle Arm from Cacnea, but Meowth exclaims that’s a bad idea. Tokin dodges, and the Needle Arm hits the balloon instead, puncturing it and sending it plummeting towards the ground. Tokin lands on the net and slashes it open just before they hit. The balloon crashes in the background, but Tokin and Pikachu managed to leap to safety before the crash. Ash and Kimmy run up and reunite with them, and Kimmy promises to play with Tokin more often from now on. Everyone else joins and looks on.
Suddenly, they hear a noise, and the dust from the landing clears to reveal Jessie and Meowth beating up on James because of his dumb move with Cacnea. Jessie notices the group, and calls for a Poison Tail from Seviper. James furiously calls for a Needle Arm from Cacnea. Kimmy calls for Tokin to use Water Pulse, which consequently confuses Cacnea and Seviper who begin attacking each other. Jessie is furious, but as she yells at their Pokémon, they then turn on them. Cacnea launches a Pin Missile at Jessie and James while Seviper uses Haze. Ash suggests that Pikachu and Tokin team up to finish them off, and Kimmy agrees. Pikachu and Tokin both use Thunderbolt, sending Team Rocket blasting off. Afterwards, Kimmy admits he was scared that Tokin wouldn't like him once it evolved, but now realizes otherwise. Kimmy's parents also thank the group for their help. As promised, Kimmy pulls out a Poké Ball and throws it, telling Linoone to go fetch.