军北上,命杨师厚围攻枣强,又命贺德伦攻打蓚县(治今河北景县)。但梁军虽攻破枣强,却在蓚县被晋将符存审、史建瑭击败。朱温羞愤发病,返回洛阳,不久便被其子朱友珪弑杀。
天祐十年(913年),朱友贞发动政变,诛杀朱友珪,夺取帝位,史称梁末帝。而晋军则连夺幽州镇统辖的顺州(治今北京顺义)、檀州(治今北京密云)、武州(治今河北宣化)、平州(治今河北卢龙)、营州(治今辽宁朝阳)等地。是年十一月,李存勖亲征燕国,攻破幽州,俘获刘仁恭(一直被刘守光囚禁)、刘守光父子。他留周德威镇守幽州。
天祐十一年(914年),李存勖返回太原,处死刘仁恭父子,以祭奠李克用。当时,李存勖南破后梁,北定桀燕,威震天下。王镕、王处直相继遣使入晋,共推李存勖为尚书令。存勖依礼三辞,而后接受尚书令之职。他在太原开设霸府,建立行台,以唐朝皇帝的名义承制任命官吏。
天祐十二年(915年),魏博节度使杨师厚病逝。梁帝朱友贞趁机将魏博镇分为两镇,以削弱藩镇势力,结果引发魏博兵变。变兵囚禁新任节度使贺德伦,请降于晋。李存勖乘势进占魏州(治今河北大名东北),并处死变兵首领张彦等人,以威慑兵变士卒,稳定乱局。他收魏博牙兵为亲军,亲自兼领魏博节度使,随后又攻取德州、澶州(治今河南清丰西)。是年七月,李存勖进兵莘县,与梁将刘鄩展开对峙。
天祐十三年(916年),李存勖声言回师太原,以引诱刘鄩出战。刘鄩果然中计,欲趁机夺回魏州,结果遭到李存勖、李嗣源、符存审的三面夹击,在元城一战中全军溃败,逃奔滑州(治今河南滑县)。此后,李存勖又遣军接连攻取卫州(治今河南卫辉)、洺州(治今永年东南)、相州(治今河南安阳)、邢州(治今河北邢台)、沧州、贝州(治今河北清河西)等地。黄河以北除黎阳(治今河南浚县东)一地外,全部被晋国占领。梁晋形势从此发生逆转。
天祐十四年(917年),寿州刺史卢文进叛附契丹,并引契丹军南下。契丹皇帝耶律阿保机亲率五十万大军,入寇幽州。守将周德威孤军坚守幽州,同时遣使向李存勖求援。李存勖遂命符存审、李嗣源、阎宝统领七万步骑,北上救援。是年八月,李嗣源率援军抵达幽州城外,大败契丹军,解除幽州之围。此战,晋军俘斩以万计,缴获牛羊、辎重无数。
契丹败退,北疆暂保无忧。李存勖开始调兵南下,推锋至黄河岸边,与梁军夹河对峙,争夺黄河沿岸各处要点。
天祐十四年(917年)十二月,李存勖率军东进,连破梁军数座营寨,攻陷杨刘城(魏州通向郓州的重要渡口,在今山东东阿北),俘获守将安彦之,并攻掠至郓州(治今山东东平)、濮州(治今山东鄄城北)一带。当时,朱友贞正在洛阳进行祭天大典,闻讯仓皇赶回汴州,组织复夺杨刘城。但谢彦章数次用兵,始终未能收复杨刘城。
天祐十五年(918年)八月,李存勖调发河东、魏博、幽州、横海、义武等镇军队,齐集魏州,准备直捣汴州,一举灭亡后梁。是年十二月,李存勖由濮州境内的麻家渡渡过黄河,进驻胡柳陂(在今山东鄄城西北),与梁军展开血战。晋军大败,周德威战死。李存勖被迫据土山自保。当时,围山梁军多是步卒,而且立足未稳。李存勖采用阎宝、李建及的建议,以骑兵突击,终于反败为胜,击溃梁军。此战,晋军虽乘胜夺取濮阳,但也因伤亡惨重,无力再攻汴州,只得撤归河北。
天祐十六年(919年),符存审进据德胜城(魏州通向汴州的重要渡口,在今河南清丰西南),并夹河修筑南北两城。梁将贺瑰围攻德胜南城,并以竹索连结战船横列河面,将李存勖所率援军阻在黄河北岸。李建及率三百勇士,乘船驶至河中,斧劈火烧,冲破了梁军船阵。李存勖乘势挥军渡河,大败梁军。
后来,梁将王瓒从黎阳渡河,屯据杨村渡,修造浮桥,储存大量军需物资。而李存勖也征发数万民丁,扩建德胜北城。当时,梁晋两军每日大小百余战,互有胜负。
天祐十七年(920年),河中节度使朱友谦攻取同州(治今陕西大荔),叛梁降晋,结果遭到刘鄩的围攻,遣使向李存勖求援。李存勖命符存审、李嗣昭、李建及出军援救,在同州、渭河两次大败刘鄩,并追击至奉先(治今陕西蒲城)一带。河中镇从此归附于晋国。
天祐十八年(921年),成德军将张文礼煽动兵变。李存勖迫于形势,授其为成德兵马留后。不久,河中、昭义、横海、成德等十一藩镇,一同遣使劝进,请李存勖建国称帝,被李存勖拒绝。八月,李存勖命阎宝征讨成德镇,围困镇州(治今河北正定)。张文礼惊惧病死,其子张处瑾接掌军事,继续负城顽抗。义武节度使王处直勾结耶律阿保机,引契丹军南下,意图背叛李存勖,结果被义子王都囚禁。王都继任节度使,不久便被契丹军围困在定州。
天祐十九年(922年),李存勖亲率五千铁骑北上,先后在新城(