雍熙北伐一開始進軍還是勝利的,東路宋軍逼近幽州;遼國已準備遷都。
中路收復了飛狐、蔚州和靈丘縣,西路潘美、楊業與蔚州刺史王侁、順州團練史劉文裕等人帶領宋軍,一個月之內連下三州。
據《遼史·聖宗本紀》記載:開始,遼寰州刺史趙彥章以寰州歸順於宋朝。接著,義順軍節度副使趙希贊以朔州投降宋朝,彰國軍節度使艾正、視察判官宋雄以應州投降宋朝。
農曆四月,宋軍又乘勝向北進軍,攻陷了雲州,從而恢復了大同大部分的地區。
當時的形勢展對宋軍很有利,但是在勝利面前宋軍衝昏了頭腦;最初,東路曹彬的任務主要是以聲張要奪取幽州,從而牽制遼國的主要兵力,為中路和西路的軍事行動創造方便條件;等西路、中路取得完全勝利,然後再三路並進,集中兵力奪取幽州。
戰爭開始後,曹彬連攻數城,後又聽說西路、中路進展神,他怕戰功被別人奪走,於是,不顧牽制遼軍的主要任務,盲目衝殺,遼國蕭太后把宋軍東路看作是主力,重新部署了兵力,採取全殲宋軍主力,然後各個擊破的辦法。
於是,蕭太后調集各路兵馬,集中力量先對付宋軍東路軍隊。
結果,由於曹彬貪功輕進,被遼軍截斷糧道,堵住後路,在涿州今河北涿縣歧溝關被耶律休哥擊敗。
宋軍東路戰場一敗,使整個戰爭形勢生變化。蕭太后解除了東路宋軍的威脅後,帶領十萬大軍,向宋軍反攻,使宋軍中路和西路受到威脅。
農曆五月,遼軍在蔚州大敗宋軍中路,殺死宋軍二萬多人,佔領了靈丘、飛狐。
飛狐關是外三關之一,形勢險要,飛狐一失,開啟了進入山西的門戶。
秋季,遼軍繼續反擊,宋軍從渾源、應州紛紛敗逃,棄城而走。接著,遼軍又攻克了雲州、朔州,一直進軍到寰州,直逼雁門關,使雁北大片領土又被遼國佔領。迫於形勢,潘美、楊業只好率師回到代州。
宋軍由於倉卒撤退,許多官員和人民都來不及遷移。於是,宋太宗下令,讓潘美、楊業護送雲、朔、寰、應四州官員和人民往內地轉移。
根據當時的形勢,要完成護送任務,正面出兵損失一定很大,而且不一定能護送出境。所以,楊業主張避其鋒芒,聲東擊西。他對潘美等將領說“今遼兵益盛,不可與戰。朝廷止令取數州之民。但領兵出大石路今應縣大石口,是繁峙到應縣的重要通道,先遣人密告雲、朔州守將,俟大軍離代州日,令雲州之眾先出。我師次應州,契丹必來拒,即令朔州民出城,直入石碣谷今朔縣南。遣強弩千人列於谷口,以騎士援於中路,則三州之眾保萬全矣”《宋史·楊業傳》。
但監軍王侁不但不同意楊業的正確方案,反而汙衊楊業貪生怕死不想出戰。他主張從雁門關北上,從馬邑出軍,正面與遼軍作戰。
劉文裕也贊成王侁的這一錯誤主張。楊業聽後當即反駁說“不可,此必敗之勢也!”
王侁以懷疑的口氣說“君侯素號無敵,今見敵逗撓不戰,得非有他志乎?”
楊業本來是投誠過來的,王侁這麼一說是對楊業的極不信任;同時也深深刺痛了楊業的心。
楊業聽後氣憤地說“我又不是怕死不想戰鬥,只是這樣死了,事情也辦不了。既然你們責備我畏葸不前,我就只好冒死前去!”
打仗成為兒戲?成了小孩過家家?北宋這個奇葩王朝也是難以讓人警服,你打仗就打仗;每次出征對武將都不相信。
不相信文臣代之武將也可,然而不予代之卻派監軍監視武將的行動;你說這個仗還如何打?
楊業也是意氣用事,出征前哭著對潘美等人說“這次出軍必然對我軍不利。業本是投降過來的人,皇上不但不殺而且對我非常信任;讓我掌握重要兵權。我並不是放縱敵人不敢出戰,只是為創造時機為國立功以報皇上對我的恩遇。你們責備我那我只好以死來相報!”
楊業臨行前指著陳家峪口今朔縣南,通往忻、代的要道說“你們在峪口的兩翼部署下步兵強弩,萬一我退兵回來轉戰到這裡;你們就從兩側援助襲擊遼軍,不然,我們就會全軍覆滅!”
說完這話楊業就帶領他的部隊從石碣口北進。
遼軍統帥鈄軫得知楊業帶兵進入遼境後,隨即派蕭達蘭指揮軍隊埋伏在過路兩側。
宋軍與遼軍交戰後,鈄軫假裝敗逃引誘宋軍進入埋伏圈;然後遼兵突然四起,把宋軍團團包圍;鈄軫也回兵大戰宋軍。
楊業四面受敵,孤軍奮戰,儘管宋軍英勇殺敵,終因力量懸殊,慘遭失敗。
潘美與王侁在陳家峪口按兵不動,觀望等待。王侁派人登託邏臺今朔縣西南山上了望見沒有什麼動靜,還以為遼軍已經敗走了。
於是,想爭著報功,領兵及早離開了陳家峪口。
潘美見王侁軍隊離去,也以“不能制止”為藉口,帶領所屬部隊順著灰河今朔縣恢河後撤了二十多里。
之後,潘美聽說楊業的軍隊敗退下來不但不派兵增援,反而指揮軍隊急忙逃走。
楊業率領部下,浴血奮戰,從白天一直戰到黃昏;最後只帶領少數官兵退到陳家峪。
楊業本想利用伏擊挽救敗局,誰知陳家峪口連宋軍一個影子也沒有。
楊業氣得拊膺大慟,只得率領少數官兵與遼軍決一死戰。
當時,楊業部下只剩下一百多人,他本人也受傷十幾處。可他對部下說“你們都有父母妻子,白白跟我一塊死也沒用,不如及早逃走。報告皇上!”
眾人感動得痛哭不止,都不肯離去,最後寧死不投降,戰死在疆場。
同時殉難的還有楊業的兒子楊延玉、宋太祖皇后之兄賀懷浦、淄州刺史王貴。
尤其是王貴,當時已經七十三歲,作戰勇敢;箭用完了,就用弓把子作戰,殺死遼軍數十人,直到英勇陣亡。
楊業身上受傷十多處,仍然堅持戰鬥,殺死遼軍數百人。
按照《遼史》的記載,楊業最後轉戰到狼牙村今朔縣狼兒村被包圍。
因楊業在遼軍中很有名聲,遼軍統帥下令只能生擒,不準殺死,所以,遼軍很難抓住他。
楊業邊戰邊追,之後,戰馬受了重傷,行走不便,他又退到樹林中堅持戰鬥。
遼將耶律奚低望見楊業的戰袍影子後,射了一箭,楊業中箭從馬上摔下,這才被遼軍俘虜。
遼主深知楊業的才幹,幾次派人勸他投降,楊業堅決拒絕了遼國的招降,絕食三天而死。