晉王李存勖想要奪取大梁,而梁軍阻擋了晉軍的道路,晉軍多次挑戰梁軍守住營寨就不出戰,兩軍對持有一百多天。正在李存勖焦急萬分的時候,突然傳出後梁軍中發生內訌的消息,梁軍主將賀瑰殺死了另一位主將謝彥章。
在梁軍中北麵行營招討使賀瑰被譽為最能帶領步兵打仗的將軍,而排陣使謝彥章被認為是最善於帶領騎兵打仗的人,兩人在後梁軍隊中齊名。賀瑰自認為功勞大、武功強,對謝彥章與自己齊名心中很不舒服。在對晉軍作戰上兩人意見也不一致,賀瑰主戰,謝彥章卻要堅守。賀瑰對謝彥章說:“主上將國家的精銳軍隊交給我們了,我們卻停留不戰,這怎麼可以呢?”謝彥章卻說:“敵人強大,速戰對他們有利。我們占據有利地形敵人就不能深入,如果我們輕率與他們作戰,如有失誤則壞了大事。”兩人爭吵過後則怨恨更深。
一日兩人出營練兵,賀瑰指著一處山包說:“這裏可以建立營寨防禦敵人”可不久晉軍卻在這處山包立起了寨壘,於是賀瑰把這件事及謝彥章主張遷延不戰的事報告給了後梁帝,並誣蔑謝彥章通敵。朱友貞本就是一個疑心病很重的人,於是命令賀瑰相機除掉謝彥章。賀瑰與曹州刺史朱珪謀劃,擺下酒宴請謝彥章赴席,埋伏下刀斧手,摔杯為號,殺死了謝彥章及濮州刺史孟審成、別將侯溫裕。
晉王李存勖聽說謝彥章死了,大喜對手下將士說:“他們的將帥自相殘殺,很快就會滅亡了。賀瑰殘酷暴虐,得不到士兵的擁護。如果我們出兵直搗大梁,賀瑰怎能不動呢?這時和他們打一仗,沒有不勝的道理。”可老將周德威卻有不同意見,他對晉王說:“梁軍雖然殺了一員良將,但軍隊沒有變化,輕率行動未必能取勝。”李存勖這時根本聽不進周德威的意見,
公元918年十二月二十一日,晉王李存勖命令讓軍中所有老弱軍兵回魏州,拔營起寨號稱十萬人馬殺奔大梁。賀瑰接報晉王人馬已經出發向西方進軍,他也隻好命令梁軍全體棄掉營寨尾隨晉軍前進。
二十三日,晉軍到達胡柳陂(在今河南濮陽東南),晉軍帶有從後方征集的三萬民夫,他們負責建立營寨,晉軍一到柵壘就很快修好了。二十四日早晨探馬報告後梁軍隊已經從後麵跟了上來。周德威對晉王說:“我們營壘已經建成,可以穩守。敵人急行軍而來,沒有棲身之所,我們已經深入敵境,不可輕動,我們應該用謀略戰勝他們。我請求先派出騎兵騷擾他們,使他們得不到休息,到天色將晚的時候,他們營寨未立,柴火鍋灶都沒有準備齊全,乘其疲憊可一舉消滅他們。”李存勖血氣方剛,對周德威說:“以前在黃河邊上賊兵不出來,現在賊兵來到眼前,我們不戰你要等什麼啊,莫不是你膽怯?”當時就命令李存審說:“你運送糧草先出發,我隨後跟進,我們去破敵。”周德威也隻好率領幽州兵隨晉王一起出征了。周德威料定此去凶險,對他的兒子說:“此戰我不知會死在何處了。”
晉王李存勖出營迎擊後梁軍隊,隻見梁軍在賀瑰指揮下列成方陣,橫亙有十餘裏,向晉軍壓了過來。李存勖親自帶領禁衛軍騎兵衝進梁軍廝殺,晉軍在晉王的指揮下作戰都非常英勇。梁軍中首先是鄭州防禦使王彥章的部隊被擊敗,向西逃奔濮陽。西麵正好是晉軍的輜重隊伍,戰鬥力不強。他們看見後梁軍衝了過來,紛紛逃散。逃散的士兵進入周德威率領的幽州兵陣營,引起幽州兵陣營一片混亂,也跟著向後逃跑,相互踐踏。周德威再也控製不住局勢,隻好帶領兒子和所剩不多的親兵與梁軍交戰,結果父子兩人都死於亂軍之中。魏博節
度副使隨輜重同行,也被梁軍殺死。
後梁的軍隊從四麵向李存勖的晉軍壓了過來,晉軍的隊伍被衝亂。戰鬥至中午,晉王在混戰中看到不遠有一座土山,土山這時已被梁軍占領。李存勖對部下說:“今天能占領這座山就能取得勝利,我和你們要拿下它。”於是舞刀拍馬攻山,李從珂和銀槍大將李建及緊隨其後。後梁軍抵擋不住敗退下山。李存勖占據山頭,收集散兵,晉軍軍勢又振作起來。
戰鬥進行到傍晚,賀瑰指揮軍隊在土山的西邊列陣準備攻擊。晉軍看到梁軍勢大不少人麵有懼意,有將領就獻計說:“我們的隊伍沒有完全集合起來,不如我們先回營,明日再與梁軍決戰。”天平節度使閻寶說:“王彥章的騎兵已經去了濮陽,山下隻有步兵。現在天色將晚,梁軍已經疲憊,隻想回營,我們衝下山去一定能打敗他們。我們已經深入敵境,如果我們撤退,敵人跟上來,我們就會被打敗。那些沒有集合起來的部隊聽說我們又被梁軍所敗,一定會不戰自敗,如果戰敗河溯就不歸大王所有了。大王成敗在此一舉,請大王決斷。”李嗣昭也主戰說:“敵人沒有營壘,我們派出騎兵去騷擾他們,讓他們吃不成飯,等他們退卻時我們就追擊,這樣就能打敗他們。如果我們收兵回營,他們整理好隊伍卷土重來,勝負就未可知了。”銀槍李建及則整理好盔甲提槍上馬說:“敵人的大將已經逃跑,大王的騎兵沒有什麼損失,攻打這些疲憊兵卒就如摧枯拉朽一般。大王隻管在山上為我觀戰,看臣為大王破敵。”李存勖見將士如此用命,非常感動說:“不是你們這麼說,我幾乎誤了大計!”李建及拍馬舞槍首先衝下山坡,其餘兵將緊隨其後,後梁軍被殺得大敗。元城令吳瓊、貴鄉令胡莊各帶領一萬民夫,用牲口拉上樹枝,在土地上拖拽,揚起陣陣灰塵,並擂起戰鼓大聲呼喊助威,使梁兵摸不清晉軍人數。後梁軍拚命逃跑,互相踐踏,死傷幾乎達到三萬多人。這一仗雙方都損失兵力達三分之二左右。