宋太宗滅了北漢以後,北漢大將劉繼業歸降北宋,宋太宗也算是知人,他知道劉繼業威名遠播,就授予他左領軍大將軍、鄭州防禦使,給予重用。劉繼業歸宋以後,恢複了楊姓,單名業,也就是戲文裏麵著名的楊老令公。宋初,朝廷試圖用對遼戰爭的辦法收複燕雲十六州,楊業常與遼國打交道,有著豐富的對遼作戰經驗,於是被派往代州為三交駐泊兵馬部署,與潘美前後夾擊,兵馬歸潘美節製。980年,遼景宗率十萬大軍攻雁門。楊業率領數百騎兵繞到遼軍背後,突襲遼軍,遼軍大敗而回。982年四月,遼軍分路攻宋,楊業統軍敗遼軍於雁門關下,斬遼兵三千人,俘萬餘人,繳獲很多軍事物資。楊業立功之後,升為雲州觀察使。此戰以後,遼國軍隊對楊業非常忌畏,常常望見他的旌旗就不戰而走。楊業因此被遼軍稱為“楊無敵”。
雍熙三年,宋太宗再次征討遼國,三路大軍並出,潘美為西路軍主將,楊業為副將。起初戰事進展順利,楊業也是英勇善戰,一路奪取了寰、朔、雲、應四州,但主力軍東路曹彬失利,東路宋軍於岐溝關大敗,遼軍乘勝大舉反擊。宋太宗無奈,命令三路人馬班師回朝,命潘美等率領大軍將收複四州的民眾遷移到內地。此時,遼國十幾萬大軍全線反擊,攻破了寰州。遼軍兵力占有很大的優勢,楊業針對自己的任務是遷移民眾,不需與敵人決戰的實際,就向潘美進言,力主兵至應州,誘遼軍向東,以保障民眾沿石碣穀(今山西朔州南)南撤,並設弓弩手千人於穀口,騎兵居中接應,扼阻遼軍南下。楊業與遼軍交鋒多年,深知邊境地理,做出的判斷非常正確,也切實可行。
但是監軍王侁和劉文裕卻狂妄自大,說:“我們帶了幾萬精兵還怕他們?我們隻管沿著雁門大路,大張旗鼓地行軍,也好讓遼軍見了害怕。”