楊業又名楊繼業,原名重貴,麟州新秦(今陝西神木)人。其父楊信在後漢曾任麟州刺史。因他長期在太原生活,故《宋史》稱他為太原人。楊業就是後代戲曲小說中的楊老令公,是“楊家將”中的第一人。他從小就擅長騎射,愛好打獵。一次,他對與自己一同打獵的好友說:“我以後帶兵打仗,也會像現在一樣,迅猛如鷹犬捕殺野兔”。
楊業青少年時代為後漢河東節度使劉崇的部屬。劉崇在太原割據,建立北漢政權,提拔楊業為建雄軍(今山西代縣)節度使,並賜名劉繼業,讓他長期鎮守北方重鎮代州,在那兒抵禦遼兵的侵擾。楊業每戰必捷,立下不少戰功,當時就被人稱作“劉無敵”。
太平興國四年(997年),宋太宗率大軍親征北漢,兵圍太原,楊業把守太原城的東南麵,令在此進攻的宋軍膽寒。當劉繼元出城太宗投降時,楊業仍領人在城南苦戰。宋太宗非常欣賞楊業,命劉繼元派人去通報降訊,楊業聽後,一個人向著北麵了大哭一場,才解甲投降。宋太宗楊業厚加賞賜,任命他為左領軍衛大將軍、鄭州防禦使,仍帶兵鎮守代州,在河東戰場上抗擊遼兵。
太平興國五年(980年)三月,遼景宗派駙馬蕭多羅率軍十萬進犯雁門,楊業手下隻有幾千人馬,知道不能和遼軍硬拚。他派遣少數士兵固守關城,自己率領幾百精兵抄小路繞到雁門關以北,轉到遼軍背後發起進攻。遼兵一路向南進軍,沒有遇到什麼抵抗,正在得意時,忽然從後麵響起一片喊殺聲,隻見煙塵滾滾,一支騎兵從背後殺來,像猛虎衝進羊群一樣,亂砍猛殺。遼兵毫無防備,又弄不清後麵來了多少人馬,個個心驚膽戰,陣容大亂,哪兒還抵擋得了,紛紛向北逃竄。此次戰役,楊業刀斬蕭多羅,生擒遼將領李重海,被遼軍稱為“楊無敵”。自此契丹人每同宋軍作戰,隻要一看到楊業的旗幟,就悄然引兵退走。楊業在這次戰役後被提升為雲州觀察使,由於楊業威望,使他遭到其他宋將的妒忌,有的甚至上書誹謗他,但太宗並不相信這些不實之詞,還把舉報的書信交與楊業本人,以示對他的信任。楊業對此自然是感激涕零,更加決心效忠太宗。
過了幾年,遼景宗耶律賢死去,即位的遼聖宗耶律隆緒才十二歲,由他的母親蕭太後執政。宋朝有邊將向太宗上奏章,認為此時遼朝政局變動,是收複燕雲十六州失地的大好機會。宋太宗接受了這個建議,於雍熙三年(968年),派出曹彬、田重進、潘美率領三路大軍北伐,楊業做潘美的副將。
三路大軍分路進攻,開始都比較順利。潘美、楊業的一路人馬出了雁門關,很快就收複了四個州。但是曹彬率領的主力因為孤軍深入,被遼軍殺得大敗。宋太宗趕快命令各路宋軍撤退,並將四個州的百姓遷入宋境內。
潘美、楊業接到命令,領兵掩護四個州的百姓撤退到狼牙村。此時,遼軍已經占領了寰州(今山西朔縣東),兵勢很猛。楊業建議潘美避過遼軍主力,隻派兵佯攻,達到吸引遼軍主力的目的,然後派精兵埋伏在退路的要道,掩護軍民撤退。
這個作戰計劃遭到監軍王侁等人的反對。王侁說:“我們現在有幾萬精兵,難道還怕他們不成?我們隻管沿著雁門大路大張旗鼓地行軍,這樣讓敵人見了也會害怕退讓。”
楊業認為這樣太過冒險,說:“現在敵強我弱,這樣幹一定會失敗。”
王侁帶著嘲笑的口吻說:“楊將軍不是號稱無敵嗎?現在怎麼在敵人麵前畏縮不戰,不會是另有打算吧?”
這一句話把楊業激怒了。作為北漢降將,他最不願意被人看作是對宋室有三心二意的人,他說:“我並不是怕死,隻是現在戰機不利,我不願讓兵士們白白喪命。如果你們一定要打,那我可以打頭陣。”
主將潘美支持王侁的主張,楊業沒有辦法,隻好帶領手下人馬出發。臨走的時候,他流著眼淚對潘美說:“我本是後漢降將,早該一死。我這次隻是想看準時機,然後痛擊敵人,以報答皇上隆恩。現在既然大家都責備我避敵,我不得不先死於敵中。”
楊業與潘美商定在陳家峪(今山西朔縣南)會合,他囑托潘美:“你們在這個穀口兩側,埋伏好步兵和弓弩手。我兵敗之後,會引遼兵退到這裏,你們帶兵接應,兩麵夾擊,或許可以轉敗為勝,否則將全軍覆沒。”潘美答應了楊業的請求,在陳家峪穀口布下了軍陣,以備救援。
楊業出兵沒有多遠,就遭到遼軍的伏擊。楊業雖然率軍英勇殺敵,但遼兵人數實在太多,不斷地像潮水一樣湧上來。楊業拚殺了一陣,帶領將士一邊打一邊後退,從正午至傍晚,終於把遼軍引向陳家峪。
到了陳家峪,已是太陽下山的時候。楊業退到穀口,卻發現兩邊靜悄悄的,根本沒有宋軍的影子。原來楊業走了以後,潘美派王侁率人馬埋伏在陳家峪,可是等了一天,聽不到楊業的消息,王侁認為一定是楊業進退了遼兵。他怕楊業搶了頭功,就將伏兵撤去,離開了陳家峪;主帥潘美明知王侁撤軍,卻沒有加以阻止。等潘美和王侁率軍離開陳家穀口10公裏遠的時候,聽到楊業兵敗的消息,但他們非但不前去援救,反而率兵從另外一條小道逃跑了。