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