高粱河之战发生在北宋灭北汉之后,宋军继续向辽朝占领的燕云十六州进军,目标是攻打辽南京。这场战斗中,宋军从最初的优势变为劣势,从主动出击变成了被动防守,最后惨败。士兵死伤过万,连宋太宗赵光义也在战斗中中箭受伤,无法骑马,只得乘驴车逃脱。由于这一惨败和赵光义的狼狈逃跑,至今人们给他取了个外号——高粱河车神。这个名字源于他在逃跑时坐着驴车,而辽军的骑兵追不上他,所以大家戏称宋太宗为车神。
太平兴国四年(公元979年),北宋军队攻占了太原,导致存在了仅29年的北汉政权灭亡。宋军当时的状态非常疲弱,原因是太原城防坚固,围攻数月后,士兵人困马乏,物资也接近枯竭。此时,宋太宗决定发起北伐,尽管军力已经有所削弱,但出师北伐还是有一定的战略意义——因为刚刚灭了北汉,正是趁辽朝不备的时机,出其不意地发起进攻。不过从个人角度看,宋太宗此时或许有些过于自信,甚至有些飘了。毕竟他刚刚完成了哥哥未曾完成的任务,心态有所变化。尽管如此,宋军的状态还是影响了后续战局,尤其是在出发之初,宋军就出现了扈从六军有不即时至者的情况,表明士气并不高。 令人大吃一惊的是,在宋军进攻初期,辽军却接连失败。首先是辽之东易州刺史刘禹以州降,紧接着,辽北院大王耶律希达、统军使萧托古、伊实王萨哈等在沙河一带迎战宋军,结果遭到宋军的重创,五百多人被生擒。随后,辽南院大王耶律色珍在德胜口迎战宋军,但依然被击败,损失上千人。耶律色珍派遣军队袭击宋军后方,才勉强迫使宋军撤退。尽管如此,宋军并未遭到致命打击,依然有足够的力量继续追击辽军,彻底消灭耶律色珍的部队,但这并没有发生。 经过一系列激战后,宋军终于抵达了辽南京城下。宋太宗命令各路大将分攻四面,定国节度使宋渥攻南面,河阳节度使崔彦攻北面,彰信节度使刘遇攻东面,定牙节度使孟元喆攻西面,宋军大举进攻,城外的辽军纷纷溃散。辽南京城内的守军面临极大压力,权留守韩德让心生恐惧,与知三司事刘弘一道登城组织抵抗。实际上,此时辽南京的守军几近崩溃,宋军在城外劝降,城内的士兵也纷纷产生恐慌,指挥使李紥出城投降,整个城内的士气已经彻底崩溃。然而,辽朝的援军迟迟没有现身,形势一度对宋军十分有利。 然而,就在此时,宋军开始显现出疲态。由于长时间围攻辽南京未果,宋军的士气开始下滑。尽管如此,宋军仍然在高粱河(现今北京德胜门外)击败了前来增援的辽南京丞相耶律沙的部队,但就在这时,宋军发生了致命的失误。由于经过长时间的战斗,加上耶律休哥采取了障眼法,宋军的防线开始松动。此时,耶律休哥与之前撤到清沙河北的耶律色珍合兵,发起猛烈反攻,辽南京城内的守军也趁机冲出杀敌。宋军在这次反攻下最终崩溃,宋太宗赵光义中箭受伤,无法骑马逃脱,只能乘坐驴车逃离战场,宋军伤亡惨重,超过一万士兵丧命。最终,宋朝的北伐以失败告终。高粱河之战的失败原因,可以归结为两个方面。首先,宋太宗忽视了耶律色珍的部队。虽然他们在之前的战斗中遭遇败绩,但战斗力依然存在,宋太宗并未对其进行穷追猛打,导致其与耶律休哥合兵,再次对宋军形成威胁。其次,宋军未能孤立辽南京,或者说没有清除周围的辽军据点。虽然辽南京久攻不下,但宋军在持续战斗中已然疲惫不堪,最终被辽军趁虚而入。至于辽南京为何未能迅速攻下,除了城防坚固之外,宋太宗亲自指挥的战斗也有很大的关系。根据《续资治通鉴》记载,帝日督诸将攻城,可见宋太宗亲自指挥,而战斗一开始,辽南京城内的守军已然人心惶惶,宋军本应抓住时机迅速攻下,但未能如此。因此,战败与宋太宗自身的指挥失误有着密切关系。