The Witcher season 3 recap guide: All 8 episodes explained

Henry Cavill in The Witcher season 3. Cr: Netflix.
Henry Cavill in The Witcher season 3. Cr: Netflix.
1 of 8
The Witcher season 3. CR: Netflix.
The Witcher season 3. CR: Netflix.

After a lengthy hiatus, The Witcher has finally returned! All eight episodes of The Witcher season 3 are now streaming on Netflix.

If you want to skip ahead to The Witcher season 3 part 2 recaps click here!

The Witcher season 3 is a particularly notable season as it marks the final run of Henry Cavill as Geralt. Cavill will exit the show at the end of season 3 and will be replaced by Liam Hemsworth moving forward in the already-announced fourth season (and rumored fifth).

In the latest season, we pick up by following Geralt, Ciri, and Yennefer as they remain on the run from all the different factions currently after Ciri, including her own father, Emperor Emhyr of Nilfgaard.

Spoilers ahead for The Witcher season 3

We’re recapping every episode of The Witcher season 3! But before you read, feel free to check out our season 2 recap guide to catch up on everything that happened before diving into the new episodes.

The Witcher season 3 episode 1 recap: Shaerrawedd

The hunt for Ciri (Freya Allan) is on in The Witcher season 3 premiere, and the benefit of that is finally getting to see Ciri, Geralt (Henry Cavill), and Yennefer (Anya Chalotra) together like the family trio we’ve been waiting for from the start.

The Witcher season 3 opens with a montage of sorts as the trio moves from place to place, always on the move to prevent anyone from catching up to them. Yennefer and Geralt primarily communicate through letters as Yennefer slowly regains his trust through months of training and traveling together.

After moving from place to place for a while, the threesome is able to settle down for a bit in a snowy location protected by Yarpen Zigrin (Jeremy Crawford) and his crew. It gives them a chance to relax and bond, even if we know it can’t last forever.

Rience (Chris Fulton) is still on the hunt for Ciri, and his latest plan involves visiting a jackapace trainer. The jackapace appears to be a show-only monster, similar to a giant, evil armadillo with keen scenting powers. It’s trained to smell elves, and Rience gives it a whiff of Ciri’s blood from the vial of witcher mutagen he stole.

Speaking of elves, Francesca (Mecia Simson) and her people are still on a mission to find Ciri, just like everyone else. Francesca believes Ciri is a powerful descendant, Hen Ichaer, and prophesized to deliver them to the fabled Dol Blathanna. But Francesca has new complications as her people are beginning to doubt her.

Francesca has allied with the guerrilla Scoia’tael fighter Gallatin (Robbie Amell), but they fundamentally disagree on what their next move should be. Francesca is obsessed with finding Ciri, but Gallatin believes allying with Nilfgaard is the best way for their people to be free.

He thinks the entire Continent could be their Dol Blathanna, but Francesa doesn’t think it’s possible for elves and humans to coexist peacefully. History is on her side. For now, she’s been sending her best fighters on secret Ciri-related missions, leaving Gallatin and the weaker of her people to die in battles they’re ill-prepared for, and Gallatin is displeased. By the looks of things, a power struggle between them is brewing.

In Redania, King Vizimir (Ed Birch) is growing restless since his spymaster, Sigismund Dijkstra (Graham McTavish), still hasn’t brought him Princess Cirilla despite his promises to the contrary. Vizimir decides to assign his oafish younger brother, Prince Radovid (Hugh Skinner), to assist Dijkstra and Philippa Eilhart (Cassie Clare) with their mission. In the books, Radovid is Vizimir’s son, but the show has aged him up and made him the king’s brother instead.

Ciri is growing restless. When she learns from Yarpen that Belleteyn is being hosted nearby, she begs Geralt and Yennefer to let her attend. Yennefer convinces Geralt to go, and all three of them attend. Ciri gets to dance and have a night of frivolity while Geralt and Yennefer reminisce about their many good nights together. Geralt even remembers that Belletyn is Yennefer’s birthday. Ciri was also born near Belletyn, but it’s not mentioned in the episode.

Unfortunately, as these nights often go, their joy is short-lived. The jackapace catches up to them at the party and chases Ciri through a hedge maze. Geralt, Yennefer, and Ciri narrowly defeat it. Realizing that Rience will continue coming after Ciri no matter where they go, thanks to having her blood, they devise a new plan to lure him out.

They’ll use Ciri as bait to make a trap. To do so, they’ll need people to believe Ciri is traveling without Geralt and Yennefer, and the only way anyone would believe that is if she’s with someone else they trust. Enter Jaskier (Joey Batey). Our first scene with Jaskier in The Witcher season 3 is him being thrown out after sleeping around on a woman named Vespula (Beau Holland). He then runs into Philippa and Radovid, who have come looking for Ciri.

Radovid is surprisingly taken with Jaskier, a true fan of the bard’s work. He tries to convince Jaskier to bring Ciri to Redania. She’d be safe there, and becoming Vizimir’s bride wouldn’t be the worst thing. Philippa tells Jaskier if they don’t bring them the girl, they’ll undo everything he’s done for the elves and kill them all. Yarpen arrives seconds later to tell Jaskier his friends need help. He’s going to act as bait alongside Ciri.

They put their plan into motion at the ancient palace of Shaerrawedd in Kaedwan. Just like they anticipated, Rience comes for Ciri, and then when he finds himself up against Geralt and Yennefer, he tries to escape through a portal, a strange portal that uses dark Chaos, unlike anything Yennefer has seen before. While Geralt jumps through to try and finish off Rience, the elves arrive, now supposedly led by a united Francesca and Gallatin. In reality, Francesca is still just after Ciri.

Geralt realizes Yennefer can’t keep the portal open much longer, and he doesn’t have time to defeat Rience. Instead, he breaks the mage’s hands and leaves him like that before returning to the battlefield.

A fight ensues between Ciri, Jaskier, Yarpen and his men, and the elves as they try to come for Ciri. Jaskier comes to the aid of one of Yarpen’s men and gets shot with an arrow, though he survives. The loss of so many men forces the elves to retreat, and Gallatin is pissed at Francesca for acting so rashly. Dara (Wilson Radjou-Pujalte) warns Gallatin that Ciri only brings death. And Francesca is faced with yet another traumatic loss as her brother, Gage (Kaine Zajaz), is killed during the battle.

In the aftermath of the fight at Shaerrawedd, Yennefer realizes she needs help to train Ciri and proposes taking her to Aretuza, where Ciri can get proper training as a novice. It won’t be easy, as she’s still considered a traitor there, but Yennefer has a plan to earn the Brotherhood’s forgiveness. Meanwhile, Geralt will hunt down Rience.

But Jaskier also puts his own plan into action. He meets with Philippa and Radovid again, suggesting they try and find Rience and his master. If they can kill him first, they’ll earn Geralt and Ciri’s trust. It’ll be much easier to persuade her to come to Redania that way. Jaskier also agrees that it would be safer for her there in the long run.

The Witcher season 3 premiere ends with Rience returning to his master, who fixes his broken hands, though we still don’t see who it is that he works for just yet. Elsewhere, Emhyr (Bart Edwards) burns all the old portraits he has of his family and keeps just one, a painting of baby Ciri.