雍熙北伐一开始进军还是胜利的,东路宋军逼近幽州;辽国已准备迁都。
中路收复了飞狐、蔚州和灵丘县,西路潘美、杨业与蔚州刺史王侁、顺州团练史刘文裕等人带领宋军,一个月之内连下三州。
据《辽史·圣宗本纪》记载:开始,辽寰州刺史赵彦章以寰州归顺于宋朝。接着,义顺军节度副使赵希赞以朔州投降宋朝,彰节度使艾正、视察判官宋雄以应州投降宋朝。
农历四月,宋军又乘胜向北进军,攻陷了云州,从而恢复了大同大部分的地区。
当时的形势发展对宋军很有利,但是在胜利面前宋军冲昏了头脑;最初,东路曹彬的任务主要是以声张要夺取幽州,从而牵制辽国的主要兵力,为中路和西路的军事行动创造方便条件;等西路、中路取得完全胜利,然后再三路并进,集中兵力夺取幽州。
战争开始后,曹彬连攻数城,后又听说西路、中路进展神速,他怕战功被别人夺走,于是,不顾牵制辽军的主要任务,盲目冲杀,辽国萧太后把宋军东路看作是主力,重新部署了兵力,采取全歼宋军主力,然后各个击破的办法。
于是,萧太后调集各路兵马,集中力量首先对付宋军东路军队。
结果,由于曹彬贪功轻进,被辽军截断粮道,堵住后路,在涿州今河北涿县歧沟关被耶律休哥击败。
宋军东路战场一败,使整个战争形势发生变化。萧太后解除了东路宋军的威胁后,带领十万大军,向宋军反攻,使宋军中路和西路受到威胁。
农历五月,辽军在蔚州大败宋军中路,杀死宋军二万多人,占领了灵丘、飞狐。
飞狐关是外三关之一,形势险要,飞狐一失,打开了进入山西的门户。
秋季,辽军继续反击,宋军从浑源、应州纷纷败逃,弃城而走。接着,辽军又攻克了云州、朔州,一直进军到寰州,直逼雁门关,使雁北大片领土又被辽国占领。迫于形势,潘美、杨业只好率师回到代州。
宋军由于仓卒撤退,许多官员和人民都来不及迁移。于是,宋太宗下令,让潘美、杨业护送云、朔、寰、应四州官员和人民往内地转移。
根据当时的形势,要完成护送任务,正面出兵损失一定很大,而且不一定能护送出境。所以,杨业主张避其锋芒,声东击西。他对潘美等将领说“今辽兵益盛,不可与战。朝廷止令取数州之民。但领兵出大石路今应县大石口,是繁峙到应县的重要通道,先遣人密告云、朔州守将,俟大军离代州日,令云州之众先出。我师次应州,契丹必来拒,即令朔州民出城,直入石碣谷今朔县南。遣强弩千人列于谷口,以骑士援于中路,则三州之众保万全矣”《宋史·杨业传》。
但监军王侁不但不同意杨业的正确方案,反而污蔑杨业贪生怕死不想出战。他主张从雁门关北上,从马邑出军,正面与辽军作战。
刘文裕也赞成王侁的这一错误主张。杨业听后当即反驳说“不可,此必败之势也!”
王侁以怀疑的口气说“君侯素号无敌,今见敌逗挠不战,得非有他志乎?”
杨业本来是投诚过来的,王侁这么一说是对杨业的极不信任;同时也深深刺痛了杨业的心。
杨业听后气愤地说“我又不是怕死不想战斗,只是这样死了,事情也办不了。既然你们责备我畏葸不前,我就只好冒死前去!”
打仗成为儿戏?成了小孩过家家?北宋这个奇葩王朝也是难以让人警服,你打仗就打仗;每次出征对武将都不相信。
不相信文臣代之武将也可,然而不予代之却派监军监视武将的行动;你说这个仗还如何打?
杨业也是意气用事,出征前哭着对潘美等人说“这次出军必然对我军不利。业本是投降过来的人,皇上不但不杀而且对我非常信任;让我掌握重要兵权。我并不是放纵敌人不敢出战,只是为创造时机为国立功以报皇上对我的恩遇。你们责备我那我只好以死来相报!”
杨业临行前指着陈家峪口今朔县南,通往忻、代的要道说“你们在峪口的两翼部署下步兵强弩,万一我退兵回来转战到这里;你们就从两侧援助袭击辽军,不然,我们就会全军覆灭!”
说完这话杨业就带领他的部队从石碣口北进。
辽军统帅钭轸得知杨业带兵进入辽境后,随即派萧达兰指挥军队埋伏在过路两侧。
宋军与辽军交战后,钭轸假装败逃引诱宋军进入埋伏圈;然后辽兵突然四起,把宋军团团包围;钭轸也回兵大战宋军。
杨业四面受敌,孤军奋战,尽管宋军英勇杀敌,终因力量悬殊,惨遭失败。
潘美与王侁在陈家峪口按兵不动,观望等待。王侁派人登托逻台今朔县西南山上瞭望见没有什么动静,还以为辽军已经败走了。
于是,想争着报功,领兵及早离开了陈家峪口。
潘美见王侁军队离去,也以“不能制止”为借口,带领所属部队顺着灰河今朔县恢河后撤了二十多里。
之后,潘美听说杨业的军队败退下来不但不派兵增援,反而指挥军队急忙逃走。
杨业率领部下,浴血奋战,从白天一直战到黄昏;最后只带领少数官兵退到陈家峪。
杨业本想利用伏击挽救败局,谁知陈家峪口连宋军一个影子也没有。
杨业气得拊膺大恸,只得率领少数官兵与辽军决一死战。
当时,杨业部下只剩下一百多人,他本人也受伤十几处。可他对部下说“你们都有父母妻子,白白跟我一块死也没用,不如及早逃走。报告皇上!”
众人感动得痛哭不止,都不肯离去,最后宁死不投降,战死在疆场。
同时殉难的还有杨业的儿子杨延玉、宋太祖皇后之兄贺怀浦、淄州刺史王贵。
尤其是王贵,当时已经七十三岁,作战勇敢;箭用完了,就用弓把子作战,杀死辽军数十人,直到英勇阵亡。
杨业身上受伤十多处,仍然坚持战斗,杀死辽军数百人。
按照《辽史》的记载,杨业最后转战到狼牙村今朔县狼儿村被包围。
因杨业在辽军中很有名声,辽军统帅下令只能生擒,不准杀死,所以,辽军很难抓住他。
杨业边战边追,之后,战马受了重伤,行走不便,他又退到树林中坚持战斗。
辽将耶律奚低望见杨业的战袍影子后,射了一箭,杨业中箭从马上摔下,这才被辽军俘虏。