天祐十四年二月,帝聞劉鄩複收殘兵保守黎陽,遂率師以攻之,不克而還。是月甲午,新州將盧文進殺節度使李存矩,叛入契丹,遂引契丹之眾寇新州。存矩,帝之諸弟也,治民失政,禦下無恩,故及於禍。帝以契丹主安巴堅與武皇屢盟於雲中,既又約為兄弟,急難相救,至是容納叛將,違盟犯塞,乃馳書以讓之。契丹攻新州甚急,刺史安金全棄城而遁,契丹以文進部將劉殷為刺史。帝命周德威率兵三萬攻之,營於城東。俄而文進引契丹大至,德威拔營而歸,因為契丹追躡,師徒多喪。契丹乘勝寇幽州。是時言契丹者,或雲五十萬,或雲百萬,漁陽以北,山穀之間,氈車毳幕,羊馬彌漫。盧文進招誘幽州亡命之人,教契丹為攻城之具,飛梯、衝車之類,畢陳於城下。鑿地道,起土山,四麵攻城,半月之間,機變百端,城中隨機以應之,僅得保全,軍民困弊,上下恐懼。德威間道馳使以聞,帝憂形於色,召諸將會議。時李存審請急救燕、薊,且曰:“我若猶豫,未行,但恐城中生事!”李嗣源曰:“願假臣突騎五千,以破契丹。”閻寶曰:“但當搜選銳兵,控製山險,強弓勁弩,設伏待之。”帝曰:“吾有三將,無複憂矣!”
夏四月,命李嗣源率師赴援,次於淶水;又遣閻寶率師夜過祁溝,俘擒而還。周德威遣人告李嗣源曰:“契丹三十萬,馬牛不知其數,近日所食羊馬過半,安巴堅責讓盧文進,深悔其來。契丹勝兵散布射獵,安巴堅帳前不滿萬人,宜夜出奇兵,掩其不備。”嗣源具以事聞。《遼史·太祖紀》:四月,圍幽州,不克。六月乙巳,望城中有氣如煙火狀,上曰:“未可攻也。”以大暑霖潦,班師,留盧國用守之。是契丹主已於六月退師矣。
秋七月辛未,帝遣李存審領軍與嗣源會於易州,步騎凡七萬。於是三將同謀,銜枚束甲,尋澗穀而行,直抵幽州。八月甲午,自易州北循山而行,李嗣源率三千騎為前鋒。庚子,循大房嶺而東,距幽州六十裏。契丹萬騎遽至,存審、嗣源極力以拒之,契丹大敗,委棄毳幕、氈廬、弓矢、羊馬不可勝紀,進軍追討,俘斬萬計。辛醜,大軍入幽州,德威見諸將,握手流涕。翼日,獻捷於鄴。九月,班師,帝授存審檢校太傅,嗣源檢校太保,閻寶加同平章事。
十月,帝自魏州還晉陽。十一月,複至魏州。十二月,帝觀兵於河上。時梁人據楊劉城,列柵相望,帝率軍履河冰而渡,盡平諸柵,進攻楊劉城。城中守兵三千人,帝率騎軍環城馳射,又令步兵持斧斬其鹿角,負葭葦以堙塹;帝自負一圍而進,諸軍鼓噪而登,遂拔其壘,獲守將安彥之。是夕,帝宿楊劉。
天祐十五年春正月,帝軍徇地至鄆、濮。時梁主在洛,將修郊禮,聞楊劉失守,狼狽而還。二月,梁將謝彥章帥眾數萬來迫楊劉,築壘以自固,又決河水,彌漫數裏,以限帝軍。六月壬戌,帝自魏州複至楊劉。甲子,率諸軍涉水而進,梁人臨水拒戰,帝軍小卻。俄而鼓噪複進,梁軍漸退,因乘勢而擊之。交鬥於中流,梁軍大敗,殺傷甚眾,河水如絳,謝彥章僅得免去。是月,淮南楊溥遣使來會兵,將致討於梁也。
秋八月辛醜朔,大閱於魏郊,河東、魏博、幽、滄、鎮定、邢洺、麟、勝、雲、朔十鎮之師,及奚、契丹、室韋、吐渾之眾十餘萬,部陣嚴肅,旌甲照曜,師旅之盛,近代為最。己酉,梁兗州節度使張萬進遣使歸款。帝自魏州率師次於楊劉,略地至鄆、濮而還;遂營於麻家渡,諸陣列營十數。梁將賀瑰、謝彥章以軍屯濮州行台村,結壘相持百餘日。帝嚐以數百騎摩壘求戰,謝彥章率精兵五千伏於堤下,帝以十餘騎登堤,伏兵發,圍帝十數重。俄而帝之騎軍繼至,攻於圍外,帝於圍中躍馬奮擊,決圍而出。李存審兵至,梁軍方退。是時,帝銳於接戰,每馳騎出營,存審必扣馬進諫,帝伺存審有間,即策馬而出,顧左右曰:“老子妨吾戲耳!”至是幾危,方以存審之言為忠也。
十二月庚子朔,帝進軍,距梁軍柵十裏而止。時梁將賀瑰殺騎將謝彥章於軍,帝聞之曰:“賊帥自相魚肉,安得不亡。”戊午,下令軍中老幼,令歸魏州,悉兵以趣汴。庚申,大軍毀營而進。辛酉,次於濮,梁軍舍營踵於後。癸亥,次胡柳坡。遲明,梁軍亦至,帝率親軍出視,諸軍從之。梁軍已成陣,橫亙數十裏,帝亦以橫陣抗之。時帝與李存審總河東、魏博之眾居其中,周德威以幽、薊之師當其西,鎮、定之師當其東。梁將賀瑰、王彥章全軍接戰,帝以銀槍軍突入梁軍陣中,斬擊十餘裏,賀瑰、王彥章單騎走濮陽。帝軍輜重在陣西,望見梁軍旗幟,皆驚走,因自相蹈籍,不能禁止。帝一軍先敗,周德威戰歿。是時,陂中有土山,梁軍數萬先據之,帝帥中軍至山下。梁軍嚴整不動,旗幟甚盛。帝呼諸軍曰:“今日之戰,得山者勝。賊已據山,吾與爾等各馳一騎以奪之!”帝率軍先登,銀槍步兵繼進,遂奪其山。梁軍紛紜而下,複於土山西結陣數裏。時日已晡矣,或曰:“諸軍未齊,不如還營,詰朝可圖再戰。”閻寶曰:“深入賊境,逢其大敵,期於盡銳,以決雌雄。況賊帥奔亡,眾心方恐,今乘高擊下,勢如破竹矣!”銀槍都將王建及被甲橫槊進曰:“賊將先已奔亡,王之騎軍一無所損,賊眾晡晚,大半思歸,擊之必破。王但登山縱觀,責臣以破賊之效。”於是李嗣昭領騎軍自土山北以逼梁軍,王建及呼土眾曰:“今日所失輜重,並在山下。”乃大呼以奮擊,諸軍繼之,梁軍大敗。時元城令吳瓊、貴鄉令胡裝各部役徒萬人,於山下曳柴揚塵,鼓噪助其勢。梁軍不之測,自相騰籍,允甲山積。甲子,命行戰場,收獲鎧仗不知其數。時帝之軍士有先入大梁問其次舍者,梁人大恐,驅市人以守。其殘眾奔歸汴者不滿千人,帝軍遂拔濮陽。