公元1003年辽军在河北定州与宋军会战。宋军成功击退辽军,但副帅王继忠的队伍落 单,王继忠被俘虏。宋真宗赵恒以为王继忠 战死,痛心疾首为其致哀。
一年后澶州之战前夕,王继忠才得以致信宋真宗,代辽国传达和谈意向。14年前的徐河之战,辽军主帅耶律休哥被重创后,河北的战况一度比较平静。但宋太宗一死,辽国针对宋朝政局变化,再次发动了迅猛的攻势,宋辽战事再度升级,双方互有胜负。公元1000年辽军俘获高阳关都部署康保裔,获得了一场大胜。次年辽军入侵定州威虏军, 因为连日大雨,辽军用皮制作的弓弦湿滑不堪使用,又中了宋军埋伏,被斩首2万级,十五名高级官员阵亡或被俘。

对此辽军当然不甘心失败,在休整了一年后,咸平六年辽军再度发难,杀向宋朝军事要塞望都,这时候守在河北前线的是镇、定、高阳关三路都部署、定州威虏军主帅王超,副手有定州副都部署王继忠、张旻,镇州都部署桑赞等人。 萧挞凛首先进围定州北方的望都,王超遂率大军前往救援望都。他先派出一千五百人的先头部队与辽军接战,自率大军列阵前往, 又传令镇州、高阳关行营前来会战。但这时出现了一个比较意外的情况,高阳关行营都部署周莹宣称,虽然自己隶属于三路都部署王超,但必须要得到枢密院诏令才能出战, 结果这一路兵最后都没有参战。 周莹为什么敢不参战,这又得从宋朝重文臣而轻武将的政治氛围说起。
宋朝皇帝为限制前线武将兵权,把中央军事 指挥部门枢密院的权力提升的空前强大。枢密院下辖南北宣徽院,枢密使一般要么自己兼任宣徽使,要么兼管宣徽使,而南院宣徽式地位又比北院宣徽使地位要高。 宣徽使的具体业务不定,但由皇帝直接派遣,便宜行事,其地位只比枢密使和参知政事(宰相)低一点。而这位周莹就是前南院宣徽使。话说他之所以来到前线,也是宋朝以文官制衡武将习惯的结果,说白了并不是他被贬了。而恰恰是守高阳关任务重大,皇帝好说好商量临时调动他过来的。
另外高阳关守将向来享有特权,可以独立于三路都部署军令之外,决定自己何时出击。有了资历和先例背书,周莹当然敢于说不。宋军本来兵力就比辽军少,这样又少了三分之一的兵力, 但仗还是要打的。王超只好以桑赞和王继忠分领左右翼,他自己坐镇中军,直接敌对萧挞凛。 王超兵团很快推进至望都,两军前锋在城南数里处相撞,辽军冲击宋军大阵不利,损失惨重,被斩首两千余级。萧挞凛率领主力及时赶到,这才收住队型。第二回合,萧挞凛重率辽军来战宋军中军大阵,仍然没有取得很好的效果。萧挞凛仔细观察了宋军阵型后发现,王继忠所在的东侧翼稍有偏离主阵, 立即率军猛攻,王继忠本是王超副手,两人共领定州军。现不得已将定州军分为两股,一股补充中军,一股跟王继忠打侧翼。

所以王继忠这边人手不足,应付起萧挞凛明显吃力。这一战直战到深夜,缠斗之中,王继忠部逐渐远离大阵,最后被辽军骑兵包围,切断了他和大阵的联系。王继忠连忙指挥突围,由 于他与大阵之间的空当已经完全被辽骑控制,他只能选择往相反方向北方跑,一路且战且行,转战到白城,终于伤亡殆尽。 另一边王超也不好过,望都没有守住,只好南撤。想回援王继忠,一来人手不足,二来不敢让全军犯险,那样定州本营就危险了。于是他派出了张旻。 张旻和王继忠都是真宗做太子时的亲近玩伴,两人感情颇深。张旻一路向北拼杀,到了白城才发现王继忠部将士们骸骨遍地,全军覆没。
张旻以为王继忠已战死,遂如实上报。消息传进了开封,赵恒悲愤交集,下令厚葬王继忠,厚赠赏赐于其家眷。其实望都之战,王继忠并未战死,而是被俘了,萧太后得知王继忠是宋真宗亲信,没有杀他,将他软禁起来,准备留到与宋朝谈判之时用。