宋太平興國(guó)四年(979年)二月,隨著北漢被宋軍征服,五代十國(guó)分裂局面徹底結(jié)束。宋太宗乘大勝之勢(shì),立即決定一鼓作氣收回石敬瑭送給遼國(guó)的燕云國(guó)土(時(shí)后周已收回莫、瀛二州,尚余十四州)。于同年六月圍攻幽州,但攻城不果。七月,宋軍與遼援軍戰(zhàn)于高梁河,宋軍敗,退至涿州。九月遼軍南進(jìn)至滿城,與宋軍遭遇,遼軍敗。宋軍追至遂城,遼軍退易縣。
太平興國(guó)五年(980年)二月,宋軍又北攻,遼國(guó)的東易州刺史和涿州判官先后獻(xiàn)城投降,岐溝關(guān)等軍事要地落入宋軍手中。七月,宋軍包圍遼國(guó)南京幽州城。屢攻不克后,遼軍反擊,宋軍全線潰敗,死者萬余。宋太宗乘驢車南逃,遼軍追至涿州而止,繳獲宋軍兵器、糧秣不可勝計(jì)。
太平興國(guó)八年(983年),12歲的遼圣宗耶律隆緒繼位,其母蕭太后攝政。遼國(guó)的國(guó)力迅速增強(qiáng),伺機(jī)與宋朝一決雌雄。
宋軍圍攻幽州失敗后,宋太宗一直想再舉兵收復(fù)燕云十六州,以雪失敗之恥。他認(rèn)為蕭太后一介女流,不足為慮,于雍熙三年(986年)正月,出兵30萬分東、中、西三路再攻幽州。
東路:天平軍節(jié)度使曹彬?yàn)橛闹莸揽傊笓],指揮使米信為幽州西北道總指揮。兩軍同時(shí)行動(dòng),自雄州直取新城(今高碑店東南)、涿州,兵力超過20萬,為宋軍主力。中路:都指揮使田重進(jìn)為定州路總指揮,自定州北上出飛狐(今淶源)。西路:命忠武軍節(jié)度使潘美為云、應(yīng)、朔等州總指揮。楊業(yè)為副總指揮,自雁門(今山西代縣)趨云州(今山西大同),爾后會(huì)田重進(jìn)部東下,從北面會(huì)攻幽州。
宋第二次北伐岐溝關(guān)等作戰(zhàn)經(jīng)過圖雍熙三年(986年)二月,宋軍開始行動(dòng),東路軍曹彬連敗遼兵,攻占岐溝關(guān)(今涿州南)、涿州、固安、新城等地。曹彬部據(jù)涿州十余日,因糧草不濟(jì)而退兵雄州至白溝一線。而此時(shí)中路軍田重進(jìn)部在飛狐擊敗遼軍,擒遼將大鵬翼,攻占飛狐、靈丘、蔚州(今河北蔚縣)。西路潘美軍也擊敗遼軍。
消息傳來,曹彬部下諸將聽說中西兩路軍連克州縣,因此求功心切,都主張出戰(zhàn)。曹彬聽信諸將意見,補(bǔ)充糧食后,與米信引軍北渡白溝河,結(jié)方陣向涿州進(jìn)軍。到達(dá)涿州后,曹彬得知蕭太后率軍從駝羅口南進(jìn),已到涿州東50里處,有會(huì)同耶律休哥軍鉗擊宋東路之勢(shì),于是命部將盧斌攜帶涿州城中民眾先行向南撤退,親率主力斷后。五月初三,宋東路軍與遼軍激戰(zhàn)于岐溝關(guān)外,宋軍大敗,南逃至拒馬河,被遼軍追擊,宋軍溺死者無數(shù)。余部向高陽(今高陽東)撤退,途中正燒飯時(shí)又被耶律休哥追上,死傷數(shù)萬人。
遼軍取勝后,即派兵攻擊宋軍中路,先后攻占蔚州、靈丘、飛狐等地。繼而攻占徐水、滿城。遼軍又圍易縣,易縣城破,守城宋軍被追殲。六月,遼耶律斜軫引軍10萬,進(jìn)擊宋西路軍。西路軍孤懸敵后,形勢(shì)危急。遼軍連下飛狐、蔚州、應(yīng)州、寰州。宋西路軍主將潘美在兵力對(duì)比懸殊的情況下,令副將楊業(yè)出擊。楊業(yè)孤軍北進(jìn),遭到遼軍伏擊而大敗,全軍被殲。楊業(yè)受重傷被遼軍所俘,絕食三日而死。
雍熙三年七月,宋太宗收拾殘部急撤,中路退定州,西路退代州,東路退高陽。宋朝收復(fù)燕云國(guó)土之戰(zhàn)徹底失敗,所取州縣復(fù)失。此后,宋守軍從保州西北部的沈苑泊至滄州的泥沽???/span>(今天津軍糧城泥沽村),筑堤蓄水,修建了一條綿亙七州軍,長(zhǎng)達(dá)900里、縱深60里的“水長(zhǎng)城”。沿途設(shè)28寨、125鋪戍守。從此宋遼以此為界對(duì)峙長(zhǎng)達(dá)13年。
到咸平二年(999年)七月,即位不久的宋真宗忽然接報(bào),遼蕭太后又將進(jìn)攻宋朝,大軍已至幽州。消息傳來,宋真宗急調(diào)楊業(yè)之子楊延昭自定遠(yuǎn)軍改保州沿邊都巡檢使,帶兵三千赴前線阻敵,擔(dān)負(fù)保州(今保定)、梁門(今徐水)、廣信(今徐水遂城)一線警備。并調(diào)傅潛任鎮(zhèn)(今正定)、定(今定州)、高(今高陽)三路行營(yíng)都部署,帶兵8萬屯定州,為二線布防。
宋軍為何如此布兵?這是因?yàn)橛捎谟?/span>“水長(zhǎng)城”的阻隔,遼軍入河北只有一條通道,即今易縣—遂城—滿城—望都一線,這是一條四季可通的旱道。其中遂城是這條通道的咽喉,是第一道防線的重中之重。楊延昭奉調(diào)上任,遂以其副手楊嗣守保州,魏能守梁門,自己扼守遂城。
果然,只過了兩個(gè)月,蕭太后率20萬遼軍,向宋境沖來,很快越過易水,攻破遂城西北的宋軍前沿?fù)?jù)點(diǎn)狼山,包圍了遂城。遂城是個(gè)小城,城中守軍不滿三千,楊延昭飛書告急,請(qǐng)求駐定州的傅潛增兵。可是傅潛怯懦無能,不敢發(fā)兵增援。遼軍攻打甚急,蕭太后親自擊鼓督戰(zhàn),城內(nèi)軍民人心惶惶,情勢(shì)十分危急。在增兵無望的情況下,楊延昭鎮(zhèn)定自若指揮戰(zhàn)斗。兵力不足,他便發(fā)動(dòng)城內(nèi)丁壯登城,披甲執(zhí)械,日夜防守。指揮軍民多次打退遼軍的進(jìn)攻。膠著一個(gè)多月后,已是十月光景,天氣變冷,城內(nèi)給養(yǎng)日匱,遼軍攻城日急。就在此時(shí),一股寒潮南下,氣溫驟降,滴水成冰。楊延昭急中生智,乘著夜色,發(fā)動(dòng)民眾澆城,水從城上澆下,沿城墻流到城外,城上城下全被澆遍。及到天明,遂城變成一座晶瑩光滑的冰城。
遼兵幾次攻城,莫說想要爬上城來,就是走近城邊,也都人仰馬翻,不得前進(jìn)一步。楊延昭乘勢(shì)領(lǐng)兵開城出擊,遼兵倉(cāng)皇潰逃,丟下無數(shù)兵甲器仗,宋軍大獲全勝。
遂城大捷后,楊延昭加強(qiáng)了警戒。一日,他帶兵到遂城西50里的羊山布防。蕭太后一直不甘心遂城的失敗,發(fā)誓報(bào)仇。聞楊延昭遠(yuǎn)離遂城到達(dá)羊山,無險(xiǎn)可據(jù),遂派出數(shù)千輕騎兵偷襲楊延昭羊山駐地。楊延昭聞?dòng)?,采取誘敵深入、合圍聚殲的戰(zhàn)法。把精銳部隊(duì)埋伏在羊山側(cè)面,形成居高臨下的包圍態(tài)勢(shì)。他則帶領(lǐng)少數(shù)騎兵東行至包圍圈外,等待遼兵的到來。
果然蕭太后大軍如期而來。楊延昭佯裝進(jìn)攻,且戰(zhàn)且退。蕭太后不知是計(jì),窮追不舍,很快進(jìn)入宋軍包圍圈,宋軍伏兵突起,從山上山后殺來。遼軍措手不及,陣腳大亂,他們本就不善山地作戰(zhàn),雙方一番廝殺,遼軍被打得丟盔棄甲,蕭太后趕緊收拾殘部奪命而逃。
遂城失敗,羊山又?jǐn)。瑢?duì)蕭太后打擊不小,遼軍決定另想出路。正是嚴(yán)冬季節(jié),“水長(zhǎng)城”結(jié)冰,已無法阻止遼軍。蕭太后試攻梁門(今徐水)。因梁門守將魏能果敢指揮,無法攻克。蕭太后轉(zhuǎn)分兵攻滿城、北平寨(今順平),向東攻保州(今保定)。遼軍到達(dá)保州西郊的廉良,在此集結(jié)。
楊延昭得知遼軍集結(jié)廉良的消息,認(rèn)為遼軍立足未穩(wěn),機(jī)不可失,急從遂城追擊而來。此時(shí)滿城守將石普和田紹斌,保州守將楊嗣,梁門守將魏能也分別出城趕來,四支部隊(duì)迅速對(duì)遼軍形成合圍。宋軍總攻開始,楊延昭、楊嗣帶頭沖入敵陣,盡情廝殺。遼軍幾個(gè)月來疲于奔命,又天寒地凍,剛立足便被圍困攻擊,驚惶失措。再加遼國(guó)騎兵只善縱馬沖殺,不善下馬短兵相接。只幾番交鋒,遼軍就死傷數(shù)千,余者大部逃走。
之后遼軍改變戰(zhàn)術(shù),避開楊延昭鋒芒,繞過城池,分東、西兩路急速向宋朝腹地突進(jìn)。東路先掠永寧軍(今蠡縣),又攻下瀛州(今河間)、祁州(今安國(guó)),進(jìn)德州,入濟(jì)南。西路繞過保州、北平寨,直奔望都。宋望都守將副都部署王繼忠,手握重兵,承擔(dān)保衛(wèi)定州的重任。然而此人貪生怕死,很快敗下陣來。在保州、定州一線的宋軍都監(jiān)李繼宣,只知保存實(shí)力,也不愿增援出戰(zhàn)。王繼忠遂投降遼軍。
宋真宗聞知大驚,關(guān)鍵時(shí)刻想起了楊延昭,復(fù)以“州團(tuán)練使楊延昭為保州威虜靜戎軍沿邊都巡檢使,代李繼宣”,并撥兵八千給楊延昭。楊延昭與魏能等迅速趕往望都出戰(zhàn),將遼軍一部消滅,解了望都之圍。
但是遼騎兵機(jī)動(dòng)性很強(qiáng),余部又繞道望都直奔定州。統(tǒng)兵8萬駐扎定州的傅潛,畏懦怯戰(zhàn),竟壓制部下請(qǐng)戰(zhàn)阻遼軍的強(qiáng)烈要求,閉城不出。遼軍前鋒在定州未遇任何抵抗,一路南去。1004年兩路遼軍至澶州(今河南濮陽),懸?guī)熕纬沟?。自此,河北大地或陷或棄,宋朝首都汴京北門猶如洞開。不久,宋朝無奈與遼國(guó)訂立了屈辱的“澶淵之盟”。