After the events of the base game, Geralt is offered a contract by Duchess Anna Henrietta, the ruler of Toussaint, a vassal duchy under the Nilfgaardian Empire. Two knights of Toussaint were murdered in strange circumstances, and Geralt is tasked with killing the monster responsible.
When Geralt arrives in Toussaint, a third knight dies. All the men seem to be killed for violating the five virtues that all knights of Toussaint swear to uphold. The killer is actually Dettlaff van der Eretein, a higher vampire. Geralt sees him killing a fourth knight, and a fight ensues. Regis, another higher vampire and friend of Geralt, interrupts the battle and convinces Dettlaff to leave. Regis is bonded to Dettlaff, by whom he is recovered, by vampire code.
Geralt and Regis discover that someone kidnapped Dettlaff's former lover Rhenawedd to force him to murder the knights. Their investigation leads them to a wine keeper who admits to selling to the Cintrian, a mysterious buyer. The Cintrian later gets killed while trying to steal a jewel that Henrietta identifies as a family heirloom lost many years ago. She speculates that her long-lost sister Syanna, who was exiled for supposedly being cursed, may be involved.
Geralt, Regis, and Detlaff team up to investigate and discover that Syanna and Rhenawedd are the same person. She faked her own kidnapping and orchestrated the murders. Dettlaff feels betrayed and threatens to destroy the capital city of Toussaint unless Syanna agrees to meet him for an explanation within three days. After learning of the situation, Henrietta confines Syanna to protect her from Dettlaff and orders Geralt to kill him.
Three days later, lesser vampires attack the city. To find Detlaff, Geralt has two choices: free Syanna or find the Unseen Elder, the head of Toussaint's vampires. If Geralt chooses to free Syanna, he goes to the Land of a Thousand Fables, a world within an enchanted fairy tale book where the sisters used to play, and locates her. While in there, he can retrieve a magical ribbon for her. She explains that she killed the knights because they exiled her, and some of them even abused her. If Geralt opts to find the Unseen Elder, he persuades him to summon Dettlaff. The Unseen Elder summons Dettlaff to Tesham Mutna and orders to all the vampires to withdraw from Beauclair.
At this point, several endings are possible. If Geralt opts to release Syanna from the book, she, Geralt and Regis go to Tesham Mutna, where Dettlaff confronts Syanna. If Geralt retrieves the ribbon, then it teleports Syanna to safety. Enraged, Dettlaff attacks Geralt and Regis, forcing them to kill him. Geralt is awarded Toussaint's highest honor. Before going to the ceremony, he can choose to uncover the identity of Syanna's would-be fifth victim, which turns out to be Henrietta, with the "punishing operation" against "renegade" knights was supposed to end with assassinating her. Geralt can then opt to confront Syanna in her cell about it. Regardless, he attends the ceremony where the duchess judges Syanna for her crimes. If he chooses not to look into the fifth victim, or if he investigates it and then talks to Syanna in an admonishing manner, she kills Henrietta and is in turn killed by de la Tour. With no living heirs to the dukedom, Toussaint falls into a state of chaos. If Geralt asks Syanna to consider forgiving her sister, which is only possible if he previously read a governess's diary, the two sisters resolve their differences and Toussaint celebrates.
If Geralt did not retrieve Syanna's ribbon, Dettlaff kills her. Geralt can choose to let him go or kill him with the help of Regis. Regardless, the grief-stricken Henrietta has him imprisoned for failing to save Syanna until Geralt's friend Dandelion convinces her to release him. Geralt then meets with Regis and can choose to look into the fifth victim. If he learns the truth and opts to tell Henrietta, she refuses to believe Geralt and forbids him from seeing her ever again.
If Geralt visits the Unseen Elder, the head vampire summons Dettlaff to Tesham Mutna. Enraged because of Syanna's absence, Dettlaff attacks Geralt and Regis, but gets killed. In this case, both sisters die even if you investigate the fifth victim.
Either way, if Dettlaff was killed, Regis is attacked by vampires who label him a traitor. Geralt returns home to the vineyard estate that formed part of his payment to find a surprise visitor. Depending on the choices and endings from the base game, the visitor may be either Yennefer or Triss (if Geralt romanced either of them in the base game), Ciri (if Geralt romances neither) or Dandelion (if Geralt romances neither and Ciri disappears in the base game, or if the player chose to do a standalone expansion playthrough).