楊業本是北漢國主劉繼元手下的老將。劉繼元歸降宋朝後,楊業也歸附了宋朝。由於遼軍不斷襲擊宋朝邊境。宋太宗十分擔心,就派楊業為代州刺史,扼守雁門關。
公元980年,遼朝派了十萬大軍攻打雁門關。而楊業手下只有幾千人馬。但楊業並不懼怕,他把大部分人馬留在代州,自己帶領幾百名騎兵,悄悄地從小路繞到雁門關北面敵人後方。
就在一路向南,未遇抵抗的遼軍越走越得意之時。楊業帥領的騎兵從後殺來。毫無準備的遼軍被殺得大亂,紛紛向北逃竄。此次交鋒,楊業大勝,被稱作「雁門關大捷」。此後,楊業威名遠揚。遼兵一看到「楊」字旗號,就嚇得不敢交鋒。人們給楊業起了個外號,叫做「楊無敵」。
過了幾年,遼景宗耶律賢死去,即位的遼聖宗耶律隆緒才十二歲,由他的母親蕭太后執政。有個邊將向宋太宗上奏章,認為遼朝政局變動,正好趁這個機會收復燕雲十六州失地。
宋太宗接受了這個意見。公元986年,宋太宗派出曹彬、田重進、潘美率領三路大軍北伐,並且派楊業做潘美的副將。
潘美、楊業的一路人馬出了雁門關,很快就收復了四個州。但是曹彬率領的主力因為孤軍深入,後來被遼軍殺得大敗。宋太宗趕快命令各路宋軍撤退。
當時,遼軍已經佔領寰州(今山西朔縣東),兵勢很猛。潘美、楊業接到命令後,領兵掩護四個州的百姓撤退。楊業建議派兵佯攻,吸引住遼軍主力,並且派精兵埋伏在退路的要道,掩護軍民撤退。
監軍王侁反對楊業的意見,主將潘美也支持王侁。楊業無法,指著面前的陳家峪(今山西朔縣南)對潘美說:「希望你們在這個谷口兩側,埋伏好步兵和弓弩手。我兵敗之後,退到這裡,你們帶兵接應,兩面夾擊,也許有轉敗為勝的希望。」
楊業出兵沒有多遠,果然遭到遼軍的伏擊。楊業雖然英勇,但是遼兵像潮水一樣湧上來。楊業拚殺了一陣,抵擋不住,只好一邊打一邊後退,把遼軍引向陳家峪。
然而本來在那裡埋伏接應的王侁潘美,卻怕楊業搶了頭功,將兵撤去了。楊業無奈,只好帶領部下與遼軍誓死大戰。然而,寡不敵眾,最後,兵士都戰死了,楊業的兒子楊延玉和部將王貴也犧牲了。楊業最後被遼軍所俘。遼將勸他投降。他抬起頭歎了口氣說:「我楊業本來想消滅敵人,報答國家。沒想到被奸臣陷害,落得全軍覆沒。哪還有臉活在世上呢?」最終一代名將楊無敵以絕食自盡而終。
幸好,宋太宗在此事上並不昏雍,他把潘美降職處分,王侁革職查辦。也算是對楊業在天之靈的一個安慰了。