Netflix’s fantasy action series, The Witcher, makes a comeback for a second season and puts Geralt of Rivia in a fatherly role, mentoring and protecting princess Ciri.
The Witcher season 2 picks up right after the battle of Sodden that saw Yennefer of Vengerberg (Anya Chalotra) blaze away the Nilfgaardian army with fire magic. The Northern Kingdoms are victorious against the Southern invaders, thanks to the stand taken by the mages.
Geralt of Rivia (Henry Cavill), finally united with Princess Ciri (Freya Allan), searches the battlefield and is informed by Yennefer’s mentor, Tissaia (MyAnna Buring), that she perished in conflict. Heartbroken yet stern, he leads Ciri to the witcher stronghold of Kaer Morhen.
After a deadly detour owing to a creature known as a bruxa, the duo arrives at their destination and Geralt rekindles with his wintering brethren along with his mentor, Vesemir (Kim Bodnia) — the oldest witcher alive.
Meanwhile, Yennefer is alive and taken hostage by the Nilfgaardian mage, Fringilla Vigo (Mimî M. Khayisa), and her remaining army. Before they can go much further, they are kidnapped by the elven king, Filavandrel (Tom Canton) and escorted to a secret dig site.
There, they are introduced to the elves’ new leader and sorceress Francesca Findabair (Mecia Simson). Discovering a secret passageway, she takes her two hostages into a mysterious looking hut where they all have different visions, triggered by a strange witch called the Deathless Mother.
Post the visions, Yennefer awakes in a forest to find out that Francesca, who is pregnant, has allied the elves with Fringilla and Nilfgaard due to what they saw in their respective visions. They plan to head back to Cintra as Yennefer escapes, discovering that she has lost her power. She eventually returns to Aretuza — her former school of magical training — and meets Tissaia.
Back at Kaer Morhen, the witchers come face to face with a nasty shock when one of their own, because of being infected, transforms into a tree-like creature called a leshy. Geralt is forced to kill him and Vesemir vows to understand how a creature can cause mutation in a witcher.
Yennefer doesn’t get the heroes welcome she hoped for as she is suspected of being a spy by the Brotherhood, having spent a month in captivity and suddenly returning. She is tasked with executing Cahir (Eamon Farren), the captured Nilfgaardian army commander, to prove her innocence.
Thinking that she does not need to turn into a killer to prove her loyalty, she frees Cahir and escapes with him on a horse. Elsewhere, Ciri begins to train in combat and Geralt reveals to her that he knew her parents. He also suspects that she may have inherited strong magical powers from her mother.
Geralt invites a friend, mage Triss Merigold (Anna Shaffer) to come to Kaer Morhen and train Ciri to control her magic. They also analyse the leshy and another creature that Geralt recently killed, discovering their connection to monoliths. Ciri admits that she accidentally toppled one using her powers while escaping from Cintra.
This is when Vesemir also discovers that Ciri has Elder blood which was thought to be extinct. Meanwhile, Triss portals Geralt to meet the sorcerer, Istredd (Royce Pierreson), who is also a historian. Elsewhere, Yennefer and Cahir chance upon information that a person named The Sandpiper, who turns out to be the bard Jaskier (Joey Batey), is smuggling elves into Cintra.
They reconcile, and try to reach Cintra but Jaskier is captured. This is where a new antagonist enters the picture, Rience (Chris Fulton), a fire mage recently released from prison and tasked with finding Ciri.
Geralt and Istredd travel to the fallen monolith outside Cintra. They realise that these structures are gateways for monsters to enter their world, when activated. Unfortunately, due to Triss conducting a ritual to find the source of Ciri’s powers at Kaer Morhen, the monolith awakens and a flying monster appears from it.
Geralt portals back to the stronghold and encounters the monster again, this time killing it. He then escorts Ciri to the Temple of Melitele, hoping that she can master her powers. They eventually run into Yennefer there.
Rience ambushes them at the temple, and as Geralt battles him, Yennefer teacher Ciri to summon a portal and they escape. The princess is determined to travel to Cintra and wreck havoc upon the Nilfgaardians as Geralt finally frees Jaskier from prison. Once there, Ciri reads Yennefer’s mind and realises her plan is to release the Deathless Mother.
She has an outburst that alerts the soldiers. Fortunately Geralt arrives in time to take care of them. He tasks Jaskier to take Ciri back to Kaer Morhen as Yennefer and Geralt prepare to confront the Deathless Mother. Elsewhere, Francesca gives birth to the first elf in centuries but the baby is mysteriously assassinated.
This murder peaks the negativity which the Deathless Mother needs to feed on and she is revealed to be the demon Voleth Meir — the monster responsible for killing the first witcher, who is now able to escape from her prison and possess Ciri.
What transpires when Voleth Meir makes its way back to Kaer Morhen inside Ciri?
If you still have doubts about the final episode of The Witcher season 2, here is a detailed breakdown.
The Witcher season 2 ending explained (Episode 8: Family)
Carnage at Kaer Morhen
Ciri, possessed by the demon, starts killing witchers in their sleep at the stronghold. She then discovers a monolith within the structure and summons monsters directly into Kaer Morhen.
Yennefer and Jaskier try to find a way to expel Voleth Meir from Ciri as Geralt and Vesemir try to contain her. Meanwhile, the remaining witchers battle the influx of creatures.
Yennefer realises her mistake and apologises to Ciri, offering her body to the demon instead. Voleth Meir is expelled from Ciri’s body and possesses Yennefer.
The Wild Hunt
Ciri portals herself, Geralt and Yennefer to a mysterious world where the demon is forced to leave her new host. Hoping the battle is won, the trio is confronted by The Wild Hunt.
This group of skeletal mythical beings travels through worlds terrorising people but they covet Ciri’s Elder blood and her powers to control gateways between realms. Their leader announces that she belong with them but before the hunt can capture Ciri, she teleports them back to Kaer Morhen.
Yennefer discovers that she has regained her magical powers as Geralt speaks to Vesemir about Ciri’s safety. He confirms that they cannot stay at the stronghold any longer owing to many factions and leaders marking Ciri for capture or death.
This is confirmed as back at Aretuza, the Northern Kings and the Brotherhood put out a bounty on Ciri and her protectors.
Enraged at her baby’s death, Francesca starts killing human babies in Redania. Meanwhile, Cahir back with Fringilla reveals to her that Nilfgaard’s emperor, Emhyr aka the White Flame, is set to visit Cintra.
However, Fringilla senses her hold on Nilfgaard loosening so she eliminates her objectors and threatens Cahir to vouch for her. Istredd, meanwhile, reveals the nature of Ciri’s Elder blood to Francesca who realises that she is the elves’ final hope.
This is when Emhyr arrives and is revealed to be none other than Ciri’s father, Duny (Bart Edwards), the man Geralt had saved years ago from Ciri’s grandmother.
He admits that he had Francesca’s child murdered and orders his soldiers to arrest Cahir and Fringilla.