The book begins a year after Inheritance, with Murtagh entering a tavern called the Fulsome Feast. He strikes up a conversation with Essie, the daughter of the owner, who wants to run away. The man Murtagh has been waiting for, Sarros, enters and shows Murtagh a shiny black stone that Murtagh had paid him to find months earlier. Sarros, however, has hired a bunch of mercenaries and tries to threaten Essie and rob Murtagh of his coin. Murtagh attempts to use the Name of Names to disarm Sarros of his magical protections, but it doesn't work, indicating a very powerful magician has enchanted them. Nevertheless, Murtagh kills them all with a magical fork, and just before he dies of an unknown spell Sarros tells Murtagh he was protected by the witch-woman Bachel and the Dreamers, as they have enchanted bird-skull amulets. Murtagh, confused, leaves the Fulsome Feast, giving his fork to Essie, and contacts the dragon he is bonded with, Thorn.
Thorn and Murtagh reflect on the stone's origin, having received a warning in Inheritance about places where those stones were. They decided to leave the city of Ceunon, where they are, and fly to the city of Gil'ead, where a woman named Ilenna, who may know about this Bachel, lives. At Gil'ead, the werecat Carabel finds Murtagh and tells him that she knows about Bachel. If Murtagh can free Silna, a werecat child held captive by the soldiers of Captain Garven's guard, she will tell him. To join Captain Garven's guard and find the child, Murtagh must kill Muckmaw, a huge fish infesting the nearby waters.
To catch Muckmaw, Murtagh learns he must dig up a dragon scale from the funeral mound of a dragon named Glaedr, who Murtagh killed while under hypnosis a year earlier. With great regret, Murtagh does so, and after learning where Muckmaw lives from a bunch of old sailors, at which time he also learns Muckmaw was created by a villain named Durza, Murtagh sets out to find the beast. Once he and Thorn reach that area, Murtagh sets the scale onto a fishing rod and fishes for Muckmaw. When Muckmaw is caught, Murtagh again attempts to use the Name of Names, but the spell around Muckmaw is guarded against this. After a ferocious battle, Murtagh finally kills Muckmaw with a stick of bone and falls unconscious. When he wakes, Murtagh takes the head to Captain Garven and is soon allowed into the guard. That night, Murtagh sneaks into some catacombs, encountering magical laboratories and artifacts. When he finds Silna, he must fight his way out, and one of the spellcasters in the guard is revealed to be a Dreamer through a bird-skull amulet. Murtagh flees through some sewers to Carabel. When he finds her, it is revealed that Silna is Carabel's daughter. Carabel allows Murtagh to alert Nasuada, the Queen of the Realm, of Garven's crimes. Carabel then tells Murtagh that Bachel and the Dreamers live far in the North, and Murtagh leaves, considering going to the capital city of Illirea and mounting an expedition to Bachel with Nasuada, who he also has feelings for.
However, while leaving Gil'ead, a man named Lyreth recognizes Murtagh and brings him to a secret house where enemies of the new government are hiding out. At first, he acts friendly to Murtagh, but suddenly Lyreth traps him in a room that prevents him from doing magic. Thorn, fearing Murtagh would die, flies into Gil'ead and rips the house apart. However, as he grabs Murtagh, his wings are trapped inside, and his intense claustrophobia, remnants from the trauma he faced, leads him to lay waste to Gil'ead with his dragon fire.
Not able to return to Illirea now, Murtagh and Thorn fly to Bachel in the far north, in a small mountain valley called Nal Gorgoth. The valley is filled with buildings of ancient design, and when Murtagh and Thorn enter they are greeted by Bachel, who is seemingly not surprised. She is very vague about who she is, saying that the Dreamers are the true disciples of the Dreamer Who Dreams. Murtagh is not able to get any answers, so they are given a room in a tower. That night, they sneak out and discover that a Forsworn named Saerlith went to Nal Gorgoth at some point. Murtagh stays for three days, growing more and more disturbed by what he sees: things like people having the same dreams, Bachel moving a mountain, and a wounded disciple being killed by Bachel during a boar hunt. He also befriends a woman named Alín, who loves dragons and is fascinated by Murtagh's talk of the outside world. Seeing Alín had been whipped for talking to him too much was one of the factors that made Murtagh decide to leave and kill his guards. However, he tries to explore a sacred cave, and Bachel and her assistant Greave capture him and Thorn.
Murtagh attempts to resist Bachel, but he finally gives up after torture and is made into a slave with Bachel's magical breath. He lapses in and out of consciousness, befriending another prisoner, an Urgal named Uvek. Bachel teaches him how she and the Dreamers worship Azlagûr the Destroyer, a being who wishes to raze the whole, world when he wakes. After Bachel makes him kill a hunch of tribesmen, he decides he cannot take it anymore and convinces Alín, disillusioned with Bachel's treatment of Thorn, to leave the drug that keeps him sedated out of his food. Becoming blood brothers, Uvek gives Murtagh a gem with healing energy in it, but Murtagh still cannot use magic. Finally, as Murtagh is about to sacrifice a woman in a demented festival, the drug wears off and he uses magic to kill some worshippers. Chaos ensues, with Bachel fleeing with a captured Alín into the caves. Murtagh kills Lyreth, who is also a Dreamer, and Greave. Then, Thron stays with Uvek due to his claustrophobia, and Murtagh runs into the caves to save Alín. He fights several disciples and soon reaches a well, far beneath which he can feel Alín's consciousness. As he goes down small tunnels to that location, he encounters many horrible mountains and kills them with his sword Zar'roc. In a moment of inspiration, he uses the Name of Names to change Zar'roc's name, which meant Misery, to Ithring, which means Freedom. Eventually, Murtagh makes it down to the room where Bachel, Alín, and the twelve disciples are waiting.
Bachel reveals that she has the Dautherdart Niernen, a powerful weapon from Inheritance. Murtagh kills the disciples, throwing them down a hole in the middle of the room, and he is finally attacked by Bachel. At first, it seems a very lopsided fight, with Bachel overpowering Murtagh, but eventually, the room begins to shake around them, and Murtagh kills Bachel by dropping a giant crystal on her. However, Murtagh and Alín seem to be doomed by the collapsing room, until Uvek and Thorn, overpowering his claustrophobia, burrow down and save them both.
Murtagh then wakes at Illirea, where Nasuada is sheltering Murtagh and Thorn. Murtagh tells Nasuada what has happened, and she seems concerned, but she asks Murtagh, who she also has feelings for, to stay in Illirea for a while, and he agrees.