宋朝开战
五月二十日,宋军从太原分路东进,翻越太行山,二十九日抵镇州(河北正定),进入河北平原。六月初七,赵光义调发京东、河北诸州的武器装备和粮秣运往前线。
六月十三日,宋太宗赵光义自镇州出发,十九日次金台屯,募民百人为向导,二十日至东易州(时宋辽各置一易州,西属宋,东属辽)之西,过拒马河入辽境。辽易州刺史刘宇,涿州判官刘厚德相继献易州、涿州投降宋军。 宋军推进很快。六月二十三日,赵光义大军至幽州城南,驻跸宝光寺。当时辽南京(宋称幽州,辽为南京析津府所在)守将为权知南京留守事韩德让以及权知南京马步军都指挥使耶律学古。另有辽北院大王耶律奚底与统军使萧讨古等军在城北屯扎。宋军先锋东西班指挥使傅潜、孔守正巡哨城北,在沙河遇到辽军,马上以先至的兵马与之交战,后军不久到达,而后诸军齐集,大败奚底、讨古及乙室王撒合军,斩获甚众,生擒五百余人。辽南院大王耶律斜轸(又译“色珍”)屯兵得胜口(河北昌平天寿山西北),看宋军锐气正盛,不敢与之直接冲突,便趁着耶律奚底新败,在得胜口用青帜伪作收容溃军之状以诱敌。赵光义得到探马报告,便有轻敌之心,麾军继续攻击,宋军将士乘胜追击,斩首千余级。而斜轸抓住机会突然袭击宋军后方,宋军败退,与斜轸军对峙于清沙河(北京城北二十里)北。辽南京城内守军得此声援,固守之志更加坚定。 六月二十五日,宋军看出耶律斜轸兵力不足,只是据险而守,仅能声援幽州之敌,便只留一部兵力与之对峙,而用大军围攻幽州城。定国节度使宋偓与尚食使侯昭愿,领兵万余攻城东南面;河阳节度使崔彦进与内供奉官江守钧,率兵万余攻西北面;彰信节度使刘遇率军攻东北面;定武节度使孟玄喆攻西南面。并以潘美知幽州行府事。耶律斜轸部将渤海帅达兰罕率部降宋,赵光义以其为渤海都指挥使。自此,城外宋军对守城辽军多方招降,使城中人怀二心,后又有其铁林都指挥使李扎卢存等率所部出降。原在城外的辽御盏郎君耶律学古入城增守,与韩德让等共谋守御,安定反侧,守军才安下心来守城。
六月二十六日,赵光义由城南宝光寺至城北,亲督众将进兵,攻击清沙河辽军,大战一日,杀敌甚众,获马三百余匹,辽军稍却,仍然凭借险要坚守。三十日赵光义又督军攻城,宋军三百人乘夜登城,被耶律学古力战所擒,后又发现并堵塞了宋军挖的隧道,修守备待援兵。而当时,辽南京被围,远近震动,辽顺州守将刘廷素、蓟州守将刘守恩相继率部降宋。
辽景宗耶律贤于六月三十日闻知南京被围,耶律奚底、萧讨古、耶律斜轸等军虽未大败,却不能进援,只能声援,于是急遣南府
宰相耶律沙率兵往救,其特里兖(官名)耶律休哥(又译休格)自荐请缨,辽主便以休哥代替奚底,统帅五院军之精锐驰赴前线。
辽军反击
宋军围攻幽州坚城不下,“将士多怠”,士气低落。
七月初六,耶律沙大军至幽州,赵光义督诸路军攻击,两军战于高梁河,耶律沙力战不支而败退。然而当时的宋军连续近二十日不停地猛攻幽州城,士卒早已疲殆,故而虽然战胜,从中午到傍晚只追了十余里。令赵光义始料未及的是,耶律休哥率军出其不意间道而来,人人手持火炬直冲,宋军不知其多寡,未等接战心里已经发怵,故不敢接战,欲据高梁河为抵御之计。耶律休哥先收容耶律沙败军,使之回去再战,与宋军相持,然后与
耶律斜轸各自统帅精锐骑兵,从耶律沙的左右翼挺进,乘夜夹攻宋军,实行两翼包围钳击之势。战斗激烈非常,
耶律休哥身先士卒,身被三创犹力战。城中耶律学古闻援军已至,也开门列阵,四面鸣鼓,城中居民大呼,响声震天动地。耶律休哥继续率部猛攻,这时宋军才发觉已被包围,又无法抵抗辽军的猛攻,只能纷纷后退。耶律沙从后面追击,而休哥与斜轸两军也对宋军实行超越追击。宋军大败,死者万余人,连夜南退,争道奔走,溃不成军,赵光义与诸将走散,诸将也找不到各自的部下军士。赵光义的近臣见形势危急,慌忙之中找了一辆驴车请赵光义乘坐,急速南逃。耶律休哥时已受重伤,昏死过去,不能骑马,左右用轻车载着他,代他发号施令,继续追击。一直追到涿州城下,获得兵器、符印、粮草、货币不可胜计。
宋军撤退
赵光义于七月初七日天明之后,已先到达涿州城外,当时宋军的败兵还没到。他又绕过涿州城,直奔金台屯,见诸军尚未到达,才敢停住“车驾”观望。初九日,赵光义见诸军仍然未到,便使人往探,这才知道诸军仍在据守涿州,而且有策划立太祖子武功郡王德昭的事,于是急命崔翰往传诏命班师。