公元979年,宋太宗太平兴国四年五月,北宋灭亡北汉,宋辽直接对峙。
宋军在消灭北汉时,在太原集结了数十万军队。赵光义企图乘战胜的余威,一举夺取幽云地区。北汉刘继元已降,赵光义遂还师至镇州即转兵北上。但是破太原尚未赏三军,诸军兵将多不愿行,只是无人敢说。只有殿前都虞侯崔翰赞成北征,“所当乘者,势也;不可失者,时也。乘此破竹之势,取之甚易。”
赵光义听了之后很高兴,当即下令枢密使曹彬调发各地屯兵。当时北宋诸将,大多数比赵光义冷静得多,他们以大军云集,粮草不及为请罢兵。而赵光义却下诏发京东、河北诸州军储,限期转运至镇州背面行营以备供应。
宋军在行动,辽国对燕云地区的防守也早有部署。三月,韩侼、耶律善布、耶律沙等救援北汉时,已命北院大王耶律奚底、乙室王撒合等,率兵戍守燕地。说明其早已考虑到宋军可能的进攻了。
辽在幽州经常屯驻的汉兵,有神武、控鹤、羽林、骁武等军,共约一万八千余骑;又有其所属将帅契丹、九女、奚、南北皮室当值舍利一千九百五十。若契丹大举南侵、则一般调集东京(辽阳府)、中京(大定府)诸路兵,兵力可达二十余万。
五月二十日,宋军从太原分路东进,翻越太行山,二十九日抵镇州(河北正定),进入河北平原。六月初七,赵光义调发京东、河北诸州的武器装备和粮秣运往前线。
六月十三日,赵光义自镇州出发,十九日次金台屯,募民百人为向导,二十日至东易州之西,过拒马河入辽境。辽易州刺史刘宇,涿州判官刘厚德相继献易州、涿州投降宋军。
宋军推进很快,六月二十三日,赵光义的大军就已经至幽州城南宁,驻跸宝光寺。当时辽南京(幽州)守将为权知南京留守事韩德让以及权知南京马步军都指挥使耶律学古。另有辽北院大王耶律奚底与统军使萧讨古等军在城北屯扎。宋军先锋东西班指挥使傅潜、孔守正巡哨城北,在沙河遇到辽军,马上以先至兵马与之交战,后军不就到达,而后诸军齐集,大败耶律奚底、萧讨古及乙室王撒合军,斩获甚众,生擒五百人。
辽南院大王耶律斜轸屯兵得胜口(河北昌平太寿山西北),看宋军锐气正盛,不敢直接冲击,便趁着耶律奚底新败,在得胜口用青帜收容溃军之状以诱敌。赵光义得了探马报告,便有轻敌之心,挥军继续攻击,宋军将士乘胜追击,斩首千余级。而耶律斜轸抓住机会突然袭击宋军后方,宋军败退,与辽军对峙于清沙河(北京城北二十里)北。
辽南京城内守军得此声援,固守之志更加坚定。六月二十五日,宋军看出耶律斜轸兵力不足,只是据险而守,仅能声援幽州之敌,便只留一部兵力与之对峙,而用大军围攻幽州城。
六月二十六日,赵光义由城南宝光寺至城北,亲督众将进兵,攻击清沙河辽军,大战一日,杀敌甚众,获马三百余匹,辽军稍却,仍然凭借险要坚守。三十日,赵光义又督军攻城,宋军三百人乘夜登城,被耶律学古力战所擒,后又发现并堵塞了宋军挖的地道,修守备待援兵。而当时,辽南京被围,远近震动,辽顺州守将刘廷素、蓟州守将刘守恩相继投降宋军。
辽景宗耶律贤于六月三十日闻知南京被围,耶律奚底、萧讨古、耶律斜轸虽未大败,却不能进援,于是急遣南府宰相耶律沙率兵往救,耶律休哥自荐请缨,辽主便以休哥代替奚底,统帅五院军之精锐驰赴前线。
宋军围攻幽州坚城不下,“将士多怠”,士气低落。
七月初六,耶律沙大军至幽州,赵光义督诸路军攻击,两军战于高粱河,耶律沙力战不支而败退。然而当时的宋军连续近二十日不停地猛攻幽州,士卒早已疲怠,故而虽然战胜,从中午到傍晚也只追了十余里。
令赵光义始料未及的是,耶律休哥率军出其不意间而来,人人手持火炬直冲,宋军不知其多寡,未等接战心里已经发怵,故不敢接战,欲据高粱河为御敌之计。
耶律休哥先收容耶律沙败军,使之回去再战,与宋军相持,然后与耶律斜轸各自统帅精锐骑兵,从耶律沙的左右翼挺进,乘夜夹攻宋军,实行两翼包围钳击之势。战斗非常激烈,耶律休哥身先士卒,身被三创犹力战。
城中耶律学古闻援军至,也开门列阵,四面鸣鼓,城中居民大呼,响声震天动地。耶律休哥继续率部猛攻,这时宋军才发觉已被包围,又无法抵抗辽军的猛攻,只能纷纷后退。耶律沙从后面追击,而休哥与耶律斜轸梁军也对宋军实行追击,宋军大败,死者万余仞,连夜南退,争道奔走,溃不成军,赵光义也与诸将走散,诸将也找不到各自部下军士。
赵光义的近臣见形势危急,慌忙中找了一辆驴车,急速南逃,辽军一路追击其道涿州下,获得兵器、粮草、货币不计其数。宋军高粱河一败,遂退军。
赵光义其人一直长于行政,而短于军事。想要凭借消灭北汉的余威一举收复燕云故地,这种进取心虽然是好的,然而好的动机并不一定带来好的结果。
赵光义被攻克太原的胜利冲昏了头脑,对辽军的实力及其拥有大量骑兵的情况估计不足,在军队疲困交加的形势下,仓促出兵,企图以突然的行动、优势的兵力,一举袭取幽州地区。这种轻率鲁莽、侥幸取胜的投机行动,最后遭到失败乃是情理中事。
从作战指挥上看,宋军移师幽州,仅是一个方向的进宫,既未从幽州北面出兵配合,牵制辽军,又未控制一定的预备兵力。一开始便将主要兵力投入战斗,企图速战速决,一举成功。以致一遇挫折,便无力挽救。其次是对幽州的防御力量估计不足。幽州是辽战略要地,辽必以重兵守城。宋军远来急进,无攻坚之准备,以致顿兵坚城,陷入师老兵疲的困境。
最后是缺乏打援部署。幽州既为辽战略要地,在受到围攻时,辽兵必以重兵增援。但赵光义心高气傲,未作任何阻援部署,只顾倾全力攻城,致全军溃败。
反观辽军,虽在宋军突袭初期遭遇了一些挫折,但能采取有效措施,固守待援,为调集援兵赢得了时间。在援兵到达后,又成功地运用两翼包抄的战法,发挥骑兵长处,乘耶律沙拖住宋军并使宋军遭到一定程度的削弱时,突然投入战斗,终于扭转战局,取得了解围幽州,大挫宋军的胜利。