序章
Geralt以Foltest保镖的身份参加了国王攻打 La Valette城堡的战斗。战斗过后,一个伪装起来的巫师趁Geralt不备刺杀了Foltest国王。刺客在松鼠党的帮助下逃跑。随后赶来的卫兵将Geralt逮捕。就在Geralt将要被处死的前夜,Temeria的特种部队,蓝衣铁卫的首领Vernon Roche被Geralt说服将其释放,去寻找国王真正的刺客。在码头Geralt与Roche和Triss Merigold汇合,乘船前往位于北方诸国交界处,地位敏感的重要港口城市Flotsam,据悉这里是松鼠党首领,精灵Iorveth最后现身的地方。
第一章
三人抵达港口城市Flotsam之后便遭到了Iorveth的伏击。三人察觉到这伙松鼠党似乎与一个刚刚刺杀了邻国Aedirn的国王的巫师勾结在了一起。之后Geralt从绞架上就下了两个好友,矮人Zoltan和吟游诗人Dandelion。很快众人就获知曾经蛰伏在Pontar河的某条支流的水怪Kayran在某种魔法的驱使下来考了Flotsam并且导致水上交通被封闭。无法继续压榨过往商船的市长Bernard Loredo请Geralt和到此专门寻觅Kayren的女术士Sile de Tansarville合力除掉这一大害。经过一番准备过后,Geralt除掉了水怪。Geralt发现刺杀国王的真凶Letho打算背叛Iorveth。Roche带兵赶到抓捕。Geralt要在帮助Iorveth和帮助Roche之间做出选择。无论怎样,Letho在于Geralt一番决斗后绑架了Triss并胁迫她将两人传送到了邻国Aedirn。
第二章(Iorveth)
如果Geralt选择帮助Iorveth的话,则这两人一同来到Aedirn。在这里两人被卷入到一场试图推翻邻国Kaedwen的国王Henselt的叛乱中,并且开始支持叛军。Geralt帮助叛军制成了被下毒的叛军首领Saskia; 确认了Triss已经被来自南方帝国Nilfgaard的间谍带往了 废墟城市Loc Muinne;最后帮助叛军攻下了守军的阵地Vergen。叛军打败了Henselt国王的军队,Henselt被迫与Saskia合谈。Geralt发现Saskia竟然是一条化身为人形的龙,并且被她的手下,女术士Philippa Eilhart所控制。Philippa 将Sakia和她本身传送到了Loc Muinne。Geralt和Iorveth前往Loc Muinne。
第二章续 (Roche)
如果Geralt选择与Roche一伙,二人则会帮助国王Henselt。Geralt发现Henselt的军中有人相信Henselt暗中与Nilfgaard帝国串通。Geralt同样要完成三件任务:确认Triss的下落,Loc Muinne,接触Henselt身上的诅咒,最后帮助国王守住阵地。Geralt击退了两个试图刺杀国王的刺客,并且获知他们原来与第一章的女术士Sile de Tansarville以及Philippa Eilhart串通一气,她也已经逃往了Loc Muinne。Geralt最终可以决定Henselt是否死在Roche的刀下,如果是的,则Kaedwen将爆发一场内战。
第三章
Geralt抵达Loc Muinne。术士们在此召集了大会Conclave作为北方诸国的所有术士的最高权力机构,并且诸国的皇室也都出息了大会。Philippa Eilhart与Sile de Tansarville打算在此次大会上借助Saskia登上权力的最高峰。
如果Geralt此时与Iorveth为伴,则Geralt必须选择营救Triss或者营救Philippa(Philippa是唯一能够解除掉Saskia身上魔咒的人,但是她已经被Redania国王抓为人质)。如果Geralt与Roche抵达,则他必须选择是营救Triss还是营救Temeria的公主Anais。大会被Nilfgaard帝国武装打断,带头的正是巫师刺客Letho。Letho揭露了Phlippa和Sile 的全部阴谋。Sile逃跑。如果Triss被营救,则Nilfgaard大使被杀,女术士们的阴谋被揭穿,Roche被定为法外之徒或者Iorveth被重伤。
Geralt赶上了Sile, 她正打算用一个传送门逃跑,然而因为故障却被困在了传送门里。Geralt可以选择救或者不救Sile。最终Geralt要选择是与巨龙Saskia战斗还是解除她身上的精神控制。
尾声
如果Geralt营救了Triss,则术士大会继续召开并且术士们将Loc Muinne封印。如果Triss没有被营救,则Loc Muinne则会爆发一场对所有法术使用者的血腥屠杀,屠杀还将蔓延至北方诸国。Geralt最终面对刺客Letho。Letho告诉Geralt这一切都是在Nilfgaard帝国的操控之下的,目的是使北方诸国产生动乱。Geralt可以选择与其决斗或者放他一条生路,最后在与Triss和Iorveth/Roche汇合后一同前往Nilfgaard。