太平兴国四年五月,宋太宗灭掉北汉,要继续北伐时,潘美等大将认为部队应该休整,补充粮饷,然后再派兵攻辽,收复幽云16州。但总侍卫崔翰却说:“乘胜北伐,机不可失,取胜不难”。太宗急于求成,采纳了崔翰的意见,连续北进。
宋军进攻幽州时,遇到耶律学古的顽强抵抗,一时难以取胜。宋太宗正在考虑对策,忽然得到辽朝宰相耶律沙率兵救援幽州已到高梁河的消息,于是决定,先迎战援兵,获胜后再来攻打幽州城。宋军放弃幽州,转向高梁河进军。来到河边,与辽军遭遇。耶律沙指挥辽兵与宋军大战两个多小时,渐渐不敌,往后撤退。宋太宗立即命令宋军乘胜追击。
宋军正全力以赴追杀辽兵,忽然几声炮响,辽朝大将耶律斜轸从左方杀来,耶律休哥从右侧杀出。宋军连续作战,已经疲惫不堪,而两支辽军以逸待劳,以一抵十,冲入宋军阵中,如入无人之境。耶律休哥直奔宋朝皇帝而来,宋太宗见状不妙,命令各将护驾,然而诸将应付辽将已力不从心,无法接近皇上。太宗正在着急,幸亏大将辅超、呼延赞赶到,掩护着皇帝逃走。
皇帝逃走,将士们也无心恋战,纷纷败逃,天将傍晚,宋军要进城休息,但辽兵又由耶律休哥率领追了过来。宋军此时已损失一万多人,溃不成军,各奔生路去了。连皇帝的卫队也四散而逃。宋太宗无奈,打马再逃。天越来越黑,后面追杀声不断,太宗慌不择路,马掉进沼泽之中,越陷越深,难以自拔。
就在这危难的关头,见前面影影绰绰跑来一队人马,太宗以为是辽军追兵,暗忖今命休矣!军队来到近前,看清旗上有一“杨”字,才知是杨业的队伍,不禁狂喜。说来也巧,杨业押运粮草回来,路过此地,听见皇上呼救,忙奔过来,跃马跳进泥坑,将太宗拽起,再递交岸上的小将,然后又将御马拉上岸。
宋太宗绝路逢生,非常感激杨业,问他身边的小将是谁,杨业告讨他是自己的儿子延昭。太宗很高兴,把这父子俩夸赞一番。正在这时,有一股辽军追来,太宗又慌了,问道:“敌军又追来了,怎么办?”杨业非常冷静地说:“请陛下骑马先行,我父子去退敌兵。”可是,皇上骑的御马趴在地上,站不起来了。杨业让皇上骑自己的战马,太宗不肯,说:“卿要退敌,不能没有坐骑。朕看有驴车,可腾出一乘,由朕坐着吧!”杨业立即命令部下找来一辆驴车,让太宗入座,由兵士们护卫着往回撤。
潘美一听,羞愧难当,命令杨业组织残兵迎敌。时间不长,有一队辽兵追到,为首的两位大将是兀环奴、兀里奚。杨业催马上前,挥刀大战二将。杨延昭怕父亲不敌二将,也打马出阵,挺枪相助,直逼兀里奚。
仅几个回合,便把兀环奴一刀劈死。兀里奚见兀环奴被杀,不免心慌,杨延昭趁机一枪,将他刺死落马。宋将见杨家父子斩了辽军两员大将,顿受鼓舞,纷纷上前助阵,辽军退走,宋军追杀一阵,抢回许多军用物资,才收兵。宋军回到定州(今河北定县),与皇上相遇。太宗命令几位大臣驻守河北几个州镇,自己带部分兵士返回国都汴京。
辽军获胜以后,辽主非高兴,命令南京留守韩匡嗣和耶律沙、耶律休哥率5万兵马再次南下,扩大战果。辽兵攻至镇州(今河北正定),驻守真定的刘延翰得报,忙请来崔彦进、李汉琼几位守将商量御敌计策。崔彦进和李汉琼想出一个“献粮饷假意投降,诱敌深入而围歼”的办法,韩匡嗣以为宋军刚刚吃了败仗,损伤十万兵马害怕了,便信以为真;但耶律休哥不相信,怕其中有诈,命令自己的部下按兵不动。
韩匡嗣和耶律沙按商定入真定城授降,走到城门口没发现一人,这才怀疑有问题,然而为时已晚,一声炮响之后,城西杀出刘廷,城东杀出李汉琼。接着炮声再次响起,崔彦进率军杀出,阻住辽军退路,辽军大败。正在这时,耶律休哥带兵杀来,帮助耶律沙和韩匡嗣逃出重围,但损兵逾万。
宋太宗得到捷报,很高兴,派杨业驻守重镇代州(今山西代县),以阻止辽军南下。