Fireheart, an ex-housecat that has joined a group of feral cats in the woods, has been made a ThunderClan warrior, along with his friend Graystripe. It is now their responsibility to protect and provide for their clan. Fireheart is looking forward to his first Gathering as a warrior. ShadowClan, RiverClan and ThunderClan are at the meeting, but WindClan is missing. ShadowClan’s former leader, Brokenstar, chased WindClan from their home; they’ve been in hiding ever since. Bluestar, ThunderClan’s leader, believes that WindClan should be brought home now that they are safe from Brokenstar. The other clans reluctantly agree.
The next day, Bluestar tasks Fireheart and Graystripe with finding WindClan and convincing them to return home. The two warriors follow WindClan’s scent across the dangerous Thunderpath and into a tunnel where the clan has been hiding. They tell the clan that Brokenstar was chased out of ShadowClan and their home is waiting for their return. WindClan agrees to return. Fireheart and Graystripe help the weakened clan make the dangerous journey. On the way back, WindClan’s medicine cat predicts that the day will bring an unnecessary death.
The cats are tired after their long journey, but WindClan sends two warriors to escort Fireheart and Graystripe back to ThunderClan. The group decides to take a shortcut and travel through RiverClan’s hunting grounds. The clans are very protective of their land, but Fireheart doesn’t believe it will cause trouble because he and Graystripe are acting on behalf of all the clans by fulfilling their mission to bring WindClan home. He is mistaken. When a RiverClan patrol finds them, a fight breaks out.
Tigerclaw, the ThunderClan deputy, hears the fight and arrives in time to help Fireheart, Graystripe and their WindClan escorts. As the RiverClan cat Graystripe is fighting, it accidentally falls down a ravine and is killed, fulfilling the earlier prophecy. The death of a cat breaks up the skirmish.
Back at camp, Bluestar knows that the altercation with RiverClan has made it appear that ThunderClan is allied with WindClan.
Fearing retaliation, she decides to assign Fireheart and Graystripe apprentices so they can start training them as warriors. Cinderpaw becomes Fireheart’s apprentice; her brother, Brackenpaw, is assigned to Graystripe. On the first day of training, Fireheart shows Cinderpaw all the sights in their territory, including the Thunderpath and Twolegplace.
Near Twolegplace, they spot a housecat. Cinderpaw wants to chase her, but Fireheart stops her. He recognizes the cat as his sister, Princess. Fireheart goes back to Twolegplace and meets with Princess. He learns that she is about to have her first litter of kits, and he tells her about clan life. They agree to meet again.
Fireheart and Graystripe take their apprentices out to continue their training by teaching them to hunt. During the hunt, Graystripe falls through the thin ice covering the river. A RiverClan she-cat appears and saves Graystripe from drowning. The ThunderClan cats return to camp to take care of the wet and freezing Graystripe. Despite their efforts, Graystripe become sick and is told to stay in camp and rest. During Graystripe’s convalescence, Fireheart notices that his friend starts disappearing from camp and isn’t taking care to rest and recover. Fireheart follows him and finds that Graystripe has fallen in love with Silverstream, the she-cat who saved him from the river. He has been sneaking off to meet her. Fireheart tries to talk to both cats privately and tell them to stop meeting as it’s against clan rules, but both cats refuse.
As the days pass, Graystripe continues to meet Silverstream, and whitecough spreads around the camp. Bluestar becomes sick. Her whitecough progresses to greencough, and the sickness kills her, taking one of her lives. When she comes back, she is on the last of her nine lives. While Bluestar is ill, Tigerclaw scents ShadowClan warriors in ThunderClan territory. He sends for Bluestar to show her the evidence of ShadowClan, but she is too ill to come. Against orders, Cinderpaw goes to meet Tigerclaw and tell him that Bluestar is ill. On her way to the meeting, Cinderpaw is hit by a car on the Thunderpath. The accident permanently injures her leg and means she can never become a warrior.
Fireheart feels guilty about Cinderpaw’s accident. He also struggles with loneliness because Graystripe is angry with Fireheart for interfering in his relationship with Silverstream. To make himself feel better, Fireheart visits Princess. She presents him with her firstborn kit and asks that Fireheart take him to the clan to become a warrior. Thinking that he won’t feel so lonely with a new apprentice, Fireheart agrees. The ThunderClan cats are angry that he’s brought a housecat into the clan, but Bluestar eventually agrees that the kit can stay, and he is given the name Cloudkit.
RiverClan and ShadowClan continue to be scented in ThunderClan territory. Bluestar confronts the clans at the next Gathering. The other clans deny the allegations and claim that they’ve scented what they assume are rogue cats in their own territories. The meeting comes close to turning violent, and the clans part ways without resolving anything.
Bluestar increases the number of patrols to try and catch the other clans in her territory. During one of these patrols, Tigerclaw finds the fresh remains of a kill. The remains smell of ShadowClan. Bluestar is gone on a patrol, so Tigerclaw takes over and leads a group of warriors to invade ShadowClan territory to send a message.
Yellowfang, the clan’s medicine cat who used to be a ShadowClan cat, recognizes the scent of Brokenstar on the remains. Fireheart realizes that the ex-ShadowClan leader is trying to draw the warriors out of the camp before attacking. Brokenstar wants to get revenge for ThunderClan’s part in exiling him from ShadowClan. As the only warrior left in the camp, Fireheart leads the other cats in defending their home against Brokenstar, who arrives with his fellow exiled cats.
ThunderClan is victorious, and Brokenstar is blinded in the attack. When she returns, Bluestar gives Brokenstar a new name, Brokentail. She agrees to let him stay in the camp until his wounds are healed, and then she will decide if he is to be cast out or not.
A few days later, a WindClan cat comes to ThunderClan with the news that RiverClan and ShadowClan have united and are attacking WindClan. Knowing that they can either fight with WindClan now or face the other clans alone later, Bluestar sends her warriors to help. During the fight, Fireheart comes face to face with Silverstream in battle. He allows the she-cat to escape, and the gesture renews the friendship between Graystripe and Fireheart. ThunderClan is victorious, and WindClan’s home is successfully protected. Fireheart is happy with the win and because he has his friend back.