In the prologue, the RiverClan camp is flooded. Duskwater, an elder, is washed away. Rainflower's kits are coming. Because the water was getting higher, she climbs up an oak tree to give birth. Brambleberry delivers her kits, and Rainflower names one Stormkit, after the storm they were born in, and the other Oakkit, after the tree that offered her protection from the water while she gave birth.
The book follows Crookedstar, first known as Stormkit. Stormkit was chased by the ThunderClan medicine cat, Goosefeather, at the Sunningrocks, where he breaks his jaw. His mother, Rainflower, feels no sympathy for Stormkit and asks the RiverClan leader, Hailstar, to rename Stormkit to Crookedkit, and Crookedkit is left distraught by this. Crookedkit is curious of what his destiny will be, and he attempts to travel to the Moonstone. However, he gets lost and ends up at a barn instead, where he stays for a while. Mapleshade, an evil ThunderClan she-cat, talks to Crookedkit in a dream, and asks him to make a promise to be loyal to RiverClan above all other things. Crookedkit did not understand what he was promising when he made his pledge.
Throughout the novel, Crookedkit, who becomes Crookedpaw and then Crookedjaw, begins to realize what "sacrifices" he has to make because of what he promised Mapleshade. He tells her he doesn't need her help, but she says she is only doing this for his good. She sends an omen, making Crookedjaw deputy. Then she kills Hailstar, making Crookedjaw leader of RiverClan. She meets him when he receives his nine lives, with the words "We did it!" Crookedstar tells her to get out of his way; he regrets making the promise. But Mapleshade says she will follow him wherever he goes. Finally, when Mapleshade kills Willowbreeze, Crookedstar's mate, Crookedstar demands to know from Mapleshade why she is doing this to him. Mapleshade tells him her story, and promises to keep haunting him until his dying day. She proceeds to kill more of Crookedstar's loved ones. Finally, when Mapleshade takes Silverstream's life, she visits Crookedstar to tell him his "punishment" was over and that she was "avenged".