On the way to Azalea Town, Ash and his friends become increasingly thirsty. With their canteen empty, Ash and Misty spot a nearby pipe to drink from, but a woman appears and begins to fix it. Before she fixes it, she fills their canteens at their request. She introduces herself as Sonrisa and escorts them to Bloomingvale, the nearest town.
At her home, she shows the trio her sprinkler system, which brings fresh water down from the mountains so she can raise her favorite Pokémon, Sunflora. Sonrisa explains that she waters them so they will be happy when the Sunflora Festival occurs, while many other Sunflora Trainers go to great lengths to make their Sunflora the best. Two of her Sunflora seem exuberant, but one, nicknamed Sunny, seems gloomy. Brock and Pikachu try doing funny faces to cheer Sunny up, but to no avail. Sonrisa says that Sunny was the Sunflora she was planning on entering in the contest, but lately, it had been really depressed. Ash promises to help cheer the Sunflora up, but the sun begins to set, and the Sunflora retreat to the greenhouse for some rest. Ash and his friends find a Pokémon Center to rest at for the night.
Back at the greenhouse of Sonrisa's neighbor Cyrus, Team Rocket picks the lock and take a look at all of the Sunflora. Meowth suggest that they take one Sunflora and enter it in the festival so they can win a year's supply of instant noodles. He then shines a torch over the sleeping Sunflora, causing them to wake up. As James examines each of the Sunflora, Meowth accidentally runs into an alarm button, which traps him in a net. Jessie and James escape, leaving Meowth entangled in the net.
Ash and his friends hear the alarm and run to investigate. Once they are there, Misty and her friends are surprised to see Meowth, but she gets an idea. She suggests to Cyrus that he let Meowth go since he didn't steal anything, which he agrees to do. Back at the Pokémon Center, Misty says that, in exchange for setting him free, Meowth has to translate for Sonrisa's depressed Sunflora to find out why it is depressed. Meowth agrees and accompanies the group to meet with Sonrisa. There, it is revealed that Sunny is depressed because of the absence of a Sunflora belonging to Cyrus that it used to play with. Just then, Meowth is lassoed by Jessie and James and saved. Sonrisa then goes looking for Sunny's friend, and Cyrus admits that he traded it to Nurse Joy. Ash, his friends, and Sonrisa go to the local Pokémon Center. There, the two Sunflora are reunited and Sunny becomes happy again.
Later, the Sunflora Festival begins, and Team Rocket is forced to dress up Meowth as one. As the judging commences, one judge likes Cyrus's Sunflora, Dorabelle; one prefers Sunny; and the last one is on the fence. As Meowth is being examined, Snubbull appears and catches a glimpse at Meowth in the costume. She suspects his real identity and bites down on his tail. Meowth jumps out of his costume, forcing Team Rocket to reveal themselves. Jessie pries Snubbull off of Mewoth's tail and throws it away.
The trio then activates mirrors that raise up all around the stadium and blinding the crowd with reflected light. However, the heads of the Sunflora begin to grow to enormous size before they collapse and are immobilized. Jessie sends out Arbok, while Ash calls out Chikorita and Misty sends out Poliwag. As they battle, James controls the Meowth balloon to pick up the instant noodles the trio craved for. Chikorita uses Razor Leaf to cut the noodles down. James sends out his Weezing, but Ash commands Pikachu to use Thunder Shock on it. Out of jealousy, Chikorita shoves Pikachu away, and his attack instead ricochets off Team Rocket's mirrors, breaking them, which mobilizes the Sunflora again. Sonrisa orders Sunny to use Solar Beam on Team Rocket, blasting them off. The judges, amazed by this display, crown Sunny as the winner of the festival. Afterwards, Sonrisa thanks Ash and his friends for helping her, and admits she would never have won the Sunflora of the Year award without them.