梁太祖疑忌功臣,迫使镇州(今河北正定)王鎔和定州(今属河北)王处直,于开平四年(910)起兵反梁,并向晋王求援。乾化元年(911)初,①本章以及以下各章据《资治通鉴》、新旧《五代史》等撰写,不一一具注。李存勗亲率大军进击梁军于柏乡(今属河北),激战一日,梁军大败,积尸遍野。晋军追奔150余里,直至邢州(今河北邢台)。后又连克澶州(今河南濮阳)、新乡(今属河南)等地,梁太祖只得率亲军前往洛阳城北设防。柏乡之战梁军主力损失惨重,梁晋战争中梁军从此处于劣势。
燕王刘守光见后梁势力被晋军逐出河北,晋王李存勗、赵王王鎔又对他假意推崇,自以为兵强马壮,独步天下,遂于同年八月称帝,并率军进攻定州,王处直即向晋王求援。次年初,晋王遣名将周德威率军攻燕,晋、赵、定州三方联军攻城略地,直抵幽州城下,刘守光只得向梁求救。梁太祖自柏乡之败,一直想复仇,此时虽有病仍亲自率军北上,号称50万大军,昼夜兼行,至下博(今河北深县南),率军5万转攻蓨县(今景县)。其时晋军主力正北攻幽州,南方空虚,驻守赵州(今河北赵县)的晋军以小部队骚扰梁军,又派数百骑兵伪装为梁军,夜袭梁太祖驻地,加上被晋军释放归来的梁军士兵,传言晋王李存勗亲率大军来攻,梁太祖惊惶失措,烧营夜遁,梁军因而溃散。梁太祖事后才知道受骗,羞愤交加,病情转重。后梁从此一蹶不振。
乾化二年(912)五月,梁太祖退到洛阳,病势垂危。六月,为次子朱友珪所杀。朱友珪即帝位后局势更加恶化,乾化三年二月朱友珪又为禁兵所杀,后梁太祖四子朱友贞即帝位于东都开封府,是为末帝。后梁内乱相继,自顾不暇,只有大将杨师厚率军与晋、赵周旋于河北。同年十月,晋王李存勗督军攻占幽州,燕帝刘守光出逃后被擒,燕国灭亡。
贞明元年(915)春,杨师厚病死,魏州(今河北大名东北)军士遂叛降于晋,晋王李存勗亲自率军东出太行黄泽岭(今山西左权东南),到魏州后又派军袭取德州(今属山东)、澶州,梁将刘■连战皆败。次年春,梁末帝命王檀率军3万北上,经阴地关(今山西灵石西南)直奔太原(今太原西南),企图袭取晋军基地以挽救败局,但又为守城晋军击败。
贞明四年(918)八月,晋王李存勗聚兵六七万号称10万由魏州南下,企图一举灭梁,与梁军相拒于濮州一带。十二月下旬,晋王李存勗率军进至胡柳陂(今濮阳西南),贺瓌率梁军跟踪而至,两军激战,梁骑军王彦章部先败,西逃时冲散了晋军的西线军队,晋军名将周德威战死,晋王李存勗夺取土山以自保,梁军骑兵已西逃,只有步兵包围土山,晋将李嗣昭、王建及率骑兵冲击山下的后梁步兵,后梁步兵大败,死亡近3万人。后梁败军逃回都城开封,扬言晋军即将前来,后梁末帝曾想逃往洛阳,但晋军也终因此战而元气大伤,无力南下攻梁,梁晋战争相对沉寂了一个时期。
龙德元年(921)春,晋王李存勗在平定河北后正拟称帝之时,镇州王鎔为部将张文礼所杀,张文礼表面上仍臣附于晋,暗中却勾结后梁与契丹,后梁虽无力北援镇州,但当晋军攻占赵州进而围攻镇州时,梁军即乘机袭击晋军,却反为晋军所败,死伤2万多人,梁军再次遭受重大挫折。
同年末,契丹应张文礼之邀,南下攻晋,没能攻下幽州,转而攻占涿州(今属河北),进抵定州城下。晋王李存勗率铁骑5000还击于新城(今新乐南)北,契丹军北退,双方大战于望都(今属河北),契丹军大败后退回契丹。
梁、唐兴替后梁龙德三年四月二十五日(923年5月13日),晋王李存勗在击败契丹军、平定河北的情况下,即帝位于魏州,国号大唐,史称后唐,建元同光,是为后唐庄宗。以魏州为东京兴唐府(后改邺都),作为都城,太原为西京、镇州为北都,作为陪都。