公元979年,宋太宗親自率領四路大軍圍攻北漢都城太原。遼軍又來援助,宋太宗派兵截斷援兵要道。太原城在宋軍重重包圍之中,外無援兵,內無糧草。北漢國主劉繼元沒法,只好投降。劉繼元手下有一名老將楊業,也歸附宋朝。宋太宗早就聽說楊業武藝高強,十分器重他,任命他做大將。
宋太宗滅了北漢,想乘勝攻打遼朝,收復北方失地。宋軍攻勢凌厲,北方有幾個州的遼朝守將紛紛投降。宋軍一直打到幽州(今北京市)。後來,遼朝派大將耶律休哥救援。雙方在高樑河(今北京市城西)打上一仗,宋兵大敗,宋太宗乘了一輛驢車,逃回東京。
打那以後,遼軍不斷襲擊宋朝邊境。宋太宗十分擔心,就派楊業為代州刺史,扼守雁門關。
公元980年,遼朝派了十萬大軍攻打雁門關。那時候,楊業手下只有幾千人馬,兵力相差很大。楊業是個有經驗的老將,知道靠硬拼是不行的,就把大部分人馬留在代州,自己帶領幾百名騎兵,悄悄地從小路繞到雁門關北面敵人後方。
遼兵向南進軍,一路上沒遇到抵抗,正在得意。忽然,後面響起一片喊殺聲,只見煙塵滾滾,一支騎兵從背後殺來,像猛虎衝進羊群一樣,亂砍猛殺。遼兵毫無防備,又弄不清後面來了多少人馬,個個心驚膽戰,陣容大亂,哪兒還抵擋得了,紛紛向北逃竄。楊業帶兵追趕上去,殺傷大批遼兵,還殺死了一名遼朝貴族,活捉了一員遼將。
雁門關大捷以後,楊業威名遠揚。遼兵一看到“楊”字旗號,就嚇得不敢交鋒。人們給楊業起了個外號,叫做“楊無敵”。
楊業立下大功,也引起一些邊防將領的妒忌。有人給宋太宗上奏章,說了楊業許多壞話。宋太宗正要依靠楊業,不理睬那些誣告,把那些奏章封好了,派人送給楊業。楊業見宋太宗這樣信任他,自然十分感動。
過了幾年,遼景宗耶律賢死去,即位的遼聖宗耶律隆緒才十二歲,由他的母親蕭太后執政。有個邊將向宋太宗上奏章,認為遼朝政局變動,正好趁這個機會收復燕雲十六州失地。宋太宗接受了這個意見。公元986年,宋太宗派出曹彬、田重進、潘美率領三路大軍北伐,並且派楊業做潘美的副將。
三路大軍分路進攻,旗開得勝。潘美、楊業的一路人馬出了雁門關,很快就收復了四個州。但是曹彬率領的主力因為孤軍深入,後來被遼軍殺得大敗。宋太宗趕快命令各路宋軍撤退。
潘美、楊業接到命令,就領兵掩護四個州的百姓撤退到狼牙村。那時候,遼軍已經佔領寰州(今山西朔縣東,寰音hu□n),兵勢很猛。楊業建議派兵佯攻,吸引住遼軍主力,並且派精兵埋伏在退路的要道,掩護軍民撤退。
監軍王□(音sh□n)反對楊業的意見,說:“我們帶了幾萬精兵,還怕他們?我看我們只管沿著雁門大路,大張旗鼓地行軍,也好讓敵人見了害怕。”
楊業說:“現在敵強我弱,這樣幹一定要失敗。”
王□帶著嘲笑的口吻說:“楊將軍不是號稱無敵嗎?現在在敵人面前畏縮不戰,是不是另有打算?”
這一句話把楊業激怒了。他說:“我並不是怕死,只是看到現在時機不利,怕讓兵士們白白喪命。你們一定要打,我可以打頭陣。”
主將潘美也支持王□的主張。楊業無可奈何,只好帶領手下人馬出發了。臨走的時候,他流著眼淚對潘美說:“這個仗肯定要失敗。我本來想看準時機,痛擊敵人,報答國家。現在大家責備我避敵,我不得不先死。”
接著,他指著前面的陳家峪(今山西朔縣南,峪音y□)對潘美說:“希望你們在這個谷口兩側,埋伏好步兵和弓弩手。我兵敗之後,退到這裡,你們帶兵接應,兩面夾擊,也許有轉敗為勝的希望。”