唐朝滅亡之后,沙陀人李克用建立后唐。到末帝李從珂繼位時,大將石敬瑭成為河東節度使。后來李從珂對石敬瑭起疑心,石敬瑭也暗謀自保。李從珂后來改授石敬瑭為天平軍節度使,并降旨催促赴任,石敬瑭便叛變。后唐于是派兵討伐,石敬瑭被圍,向契丹皇帝耶律德光求援。9月契丹軍南下,擊敗唐軍。石敬瑭在十一月受契丹帝冊封為大晉皇帝,認契丹主耶律德光為父,稱父皇帝,自稱兒皇帝,然后向后唐都城洛陽進軍,末帝在937年1月自殺,后唐滅亡。石敬瑭滅后唐后,建立后晉,并在938年按約定將燕云十六州獻給契丹。石敬瑭在位期間對遼國稱臣。
天福七年,后晉出帝石重貴即位后,拒絕再向契丹稱臣,兩國關系惡化。
契丹太宗耶律德光以晉廷負恩為由,舉兵南下。八年,耶律德光在降將楊光遠、趙延壽勸誘下,乘中原饑荒,晉廷國用困竭之機,調集山后媯、檀、云、應(今北京延慶、密云、山西大同、應縣)等州及盧龍(治今北京市城區西南)兵,于十二月兵分兩路南進。東路以趙延壽率5萬兵為前鋒,太宗自率10余萬大軍殿后,出南京(即幽州,今北京)趨魏州(今河北大名東北);西路由偉王率云、應諸軍入雁門關(今山西代縣西北)趨太原,策應東路主力作戰。
九年正月,東路前鋒軍攻陷晉糧儲重鎮貝州(治清河,今河北清河西北),繼占領南樂(今屬河南),太宗牙帳設于元城(今河北大名東北);西路軍破代州(今山西代縣),逼近忻州(今屑山西)。后晉出帝聞知,先遣使致書契丹,欲修舊好,遭拒。遂以黃河為屏障,部署防御:命高行周為北面行營都部署,率軍進駐戚城(今河南濮陽北);遣張彥澤戍黎陽(今河南浚縣東北);出帝親率禁軍抵澶州(今河南濮陽)指揮。另以劉知遠為幽州道行營招討使,抵御契丹西路軍。及戰,偉王軍攻秀容(今山西忻州),被劉知遠擊敗,逃至鴉鳴谷(今山西壽陽東南),東會契丹主力。
二月,太宗率軍圍戚城,遣麻答率數萬兵攻博州(今山東聊城東北),搶渡馬家口(今山東聊城東),會晉叛將楊光遠由翼側包抄,鉗擊正面晉軍。晉廷命何重進、白再榮、安彥威等分守麻家口(今山東鄄城東北)、楊劉(今山東東阿東北楊劉鎮)、馬家口、河陽(今河南孟縣南),加強諸津要守備。同時,遣侍衛馬軍都指揮使李守貞、神武統軍皇甫遇等率兵萬余,沿河水陸并進,疾趨馬家口阻截。及至,契丹步騎萬余已于河東筑壘,正掩護后續渡河。李守貞乘半渡而擊,拔東岸契丹軍營壘,其軍潰散,溺死甚眾,西岸之兵退走。時戚城交戰相持不下,耶律德光偽棄元城,伏兵頓丘(今河南浚縣北),企圖以示弱誘敵之策誘殺晉軍。適值霖雨,晉軍旬日未出,伏擊落空。
三月初一,契丹軍再攻戚城,兩軍鏖戰至傍晚,皆死傷甚眾。耶律德光乘夜退營30余里,隨后便撤兵北歸。契丹撤軍后,晉廷遣軍收復失地,調整部署,擴展軍備。四月,命高行周戍澶州;遣李守貞攻討青州(今屬山東)的楊光遠叛軍。八月,以劉知遠為北面行營都統,杜重威為都招討使,統領河北、山東、河南諸地防務;閏十二月,李守貞破青州,殺楊光遠。時契丹軍二次南下至元氏(今河北元氏西北)、分兵攻掠邢(治龍岡,今河北邢臺)、磁(治滏陽,今河北磁縣)3州。開運二年(945年)正月,后晉護國節度使安審琦等率數萬兵于安陽水(今河南安陽北安陽河)南岸列陣阻截。十五日,義成節度使皇甫遇率數千騎前出偵察,至鄴縣(今河北臨漳西南)猝遇數萬契丹軍,交戰百余合,晉軍寡不敵眾,且戰且退,至榆林店(今河南安陽北),苦戰半日,雙方殺傷甚眾。黃昏時,晉將安審琦率軍逾安陽水往救,契丹軍疲敝,撤師北走。晉軍乘機轉守為攻,集結諸軍于定州(今屬河北),命杜重威為北面行營招討使統軍北上。三月,下泰州(今河北青苑)、克滿城(今河北滿城北),攻遂城(今河北徐水西北)。聞契丹8萬騎于虎北口(今北京密云東北古北口)反撲將至,杜重威懼,引兵撤至陽城(今河北清苑西南)白團衛村,速扎鹿角為寨。契丹鐵鷂軍追至,圍寨數重。適北風大起,耶律德光遣奇兵斷糧道,令鐵鷂軍下馬拔鹿角,變騎為步,四面合擊,縱火揚塵以助其勢。
晉將藥元福、皇甫遇等出其不意,率精騎逆風迎戰,殊死拚殺;符彥卿等引萬余騎繼后橫擊;李守貞令步卒盡拔鹿角出擊,契丹軍潰散,棄馬奪路而逃。后晉恃陽城之捷,輕視契丹,欲伺機北伐。契丹攻晉接連受挫,不甘罷休。三年七月,耶律德光指使趙延壽及瀛州刺史劉延祚詐降,誘后晉出兵接應。晉出帝不辨真偽,即命杜重威、李守貞等會兵廣晉(今河北大名東北),悉調京師宿衛禁軍歸杜重威麾下,企圖取瀛(今河北河間)、莫(今河北任丘北州鎮),安定關南,進取幽州,蕩平塞北。十一月,杜重威率兵30萬抵瀛州,契丹將高模翰早已引兵潛出。晉偏將梁漢璋率2000騎追擊,戰敗身亡。杜重威不救,反倒退兵武強(今河北武強西南)。契丹軍長驅南下,沿易、定向恒州(治真定,今河北今正定)推進。杜重威還欲南撤,遇張彥澤返恒州,乃轉兵西行,至中渡橋(今河北正定東南滹沱河上),契丹軍已先于占領。張彥澤率騎爭奪,契丹軍焚橋,兩軍遂夾滹沱河而峙。耶律德光遣別將蕭翰迂回晉軍側后,搶占欒城(今河北欒城西),扼晉軍糧道、退路。
十二月,晉將王清要求率兵2000前出開道,但杜重威心懷異志,不許大軍增援,致使王清所部皆戰死,主力亦陷入重圍。杜重威以途窮路末,暗中勾通契丹,謀舉軍降。耶律德光佯許立其為帝,杜重威伏兵于內,迫將士出降(參見陽城、滹沱之戰)。契丹軍即乘晉后方空虛,揮師南下,直入汴梁(今河南開封)。出帝奉表報降,后晉滅亡。
此戰,契丹以騎兵優勢,實施機動作戰。采取有利則進,不利則退,誘敵深入的方略,創造野戰殲敵戰機致勝;晉廷虛驕輕敵,悉將京師宿衛禁軍投入北伐,主帥杜重威叛降后,致后方空虛,都城陷落而亡。