天祐二十年(923年)四月,李存勖在魏州称帝,改元同光,沿用“唐”为国号,又追赠父祖三代为皇帝,与唐高祖、唐太宗、唐懿宗、唐昭宗并列为七庙,以表示自己是唐朝的合法继承人,史家称之为后唐。

后梁贞明二年(916年),晋王李存勖夺占梁之魏州(今河北大名东北)及河北大部地区后,后梁与晋王争夺战日趋激烈。双方夹黄河对峙,争战数年。至龙德二年(922年),晋王军控制了杨刘(今山东东阿东北杨刘镇)、德胜(今河南濮阳)黄河重要渡口。后梁军除固守河防外,攻占了相州(今安阳)以南、澶州(治顿丘,今清丰西南)以西至卫州(今卫辉)、新乡(今属河南)地区。

龙德三年(923年)四月,李存勖于魏州称帝,是为后唐庄宗,建元同光,国号唐(史称后唐)。为扭转战局,决定乘后梁军西攻泽、潞(治今山西晋城、长治)二州、东面防守空虚之机,夺取郓州(今山东东平西北),待机进图后梁都城汴州。闰四月,遣蕃汉内外马步副总管李嗣源率精兵五千自杨刘渡河,由间道进抵郓州,乘雨夜突袭,一举破城。

后梁末帝朱友贞得知郓州失守,令王彦章为北面招讨使,和副使段凝共率军阻后唐军西进。李存勖闻讯,自率亲军进屯澶州,令蕃汉马步都虞候朱守殷严守德胜。王彦章率军疾驰滑州(今河南滑县东),遣甲士六百乘舟夜出杨村(今濮阳西)东下,自领精兵数千循岸继进,断德胜浮桥,克德胜南城及附近诸寨,声势大振。

李存勖即命朱守殷弃德胜北城,拆屋材为筏,运兵东下,加强杨刘守备。此时王彦章亦拆南城屋材为筏,浮河而下,两军各沿河一岸疾进,边行边战。后梁军十万多路并进抵达杨刘,以巨舰九艘横亘河津阻援,强攻杨刘城。因屡攻不克,乃退屯城南筑垒连营,阻击后唐军渡河。

龙德三年(923年)六月初二,李存勖亲临杨刘,见后梁军壁垒严整,河津不通,难以渡河援郓州。遂纳谋臣郭崇韬建策,亲率军在杨刘正面牵制后梁军,由郭崇韬率万人夜趋博州(今山东聊城东北)东,在马家口渡河,昼夜急筑新城于东岸,以分后梁军兵势,并接应郓州后唐军。

初八,王彦章领兵数万转攻唐军马家口新城,郭崇韬率兵奋战,李存勖亦率军自杨刘增援,王彦章见势退保邹家口(今杨刘镇东北)。郓州后唐军奏报始通。

七月,王彦章复攻杨刘,又被后唐军击败,丧师甚众,遂撤师西归,退保杨村。

龙德三年(923年)八月,朱友贞闻王彦章败退,恐后唐军径攻开封,急命在滑州决河,东注濮、曹(今定陶西南)及郓州,以阻后唐军。同时部署反击,改以段凝代王彦章为北面招讨使,率兵五万过黄河,进袭后唐澶州诸县;以董璋领陕虢、泽潞兵自石会关(今山西祁县东南)趋晋阳(今太原南晋源镇);霍彦威统汝、洛兵自卫、相、洺、邢攻镇(今河北正定)、定(今属河北)二州;王彦章、张汉杰率禁军万人以攻郓州。决意于十月同时发起进击。

八月十九日,李存勖率主力屯朝城(今山东莘县西南),召见梁降将康延孝,得知后梁多路出兵和汴州空虚等军情。

龙德三年(923年)九月初,后梁段凝军果进屯临河(今濮阳西)南;王彦章军抵郓州境。李存勖问计于郭崇韬,采纳了他乘虚袭汴的建议,决定分兵一部守魏州及杨刘,自率主力与郓州合兵,奇袭汴州。九月二十八日,李存勖下令将士家属全部回到魏州,并命李绍荣等将领固守魏州,牵制段凝军主力,自己则亲自率领骑兵主力南下实施奇袭计划。

十月初二,李存勖所部精锐步骑混合四万人(大约三万五千名步兵,五千名骑兵)从杨刘渡河南进,初三即进入郓州城。当天子夜时分后唐军跨过汶水后,李存勖命李嗣源为先锋攻击前进。初四早晨与王彦章部遭遇,大获全胜,并攻占后梁的中都(今山东汶上),生俘王彦章。

李存勖命令李嗣源率领五千骑兵抛弃全部辎重,每人只带七天粮食,快速突进汴州,而李存勖率中军一万五千名步兵轻装上阵,紧紧跟随。从初四晚上出发,到初七这天,李嗣源的骑兵已经攻到曹州(今山东定陶西),后梁军守将毫无防备,只得投降。兵不血刃占领曹州之后,后唐军马不停蹄继续向西飞驰急进,直逼汴州。

后梁方面,朱友贞在得知王彦章被俘,后唐军队轻骑突进的消息后,惊慌不已,急忙召集群臣商讨对策。无计可施之下,只好派张汉伦火速北上召段凝回师勤王,然后又命开封尹王瓒征发百姓一同守城。张汉伦到达滑州时被段凝决放的黄河水挡住了去路。虽然段凝得到消息晚了一步,事实上是晚了足足八天,但还是率军回师救驾,只是掘开的黄河泛区使得道路难行,段军必须绕路而行,所以行动迟缓。

李嗣源的骑兵在初九早上抵达汴州城下。同一天,李存勖也率兵赶到,从西门领兵进城。后梁文武百官列队迎接,李存勖安抚众臣,大部分官复原职。

龙德三年(923年)十月初七,后唐军抵曹州,后梁守军不战而降。朱友贞听说王彦章兵败被俘,后唐军逼近汴州,急派张汉伦召段凝回救,令开封尹王瓒驱民众登城防备。张汉伦为河水所阻,不得至段凝军。末帝见援军无望,大势已去,命宿卫军将其刺死。初九晨,李嗣源率唐军前锋抵汴州城下,王瓒出降。十二日,段凝率军5万经滑州回至封丘(今属河南),闻汴州已失,亦率众乞降。