五月辛未朔,晨雾晦暝,帝率亲军伏三垂岗下。诘旦,天复昏雾,进军直抵夹城。时李嗣源总帐下亲军攻东北隅;李存璋、王霸率丁夫烧寨,劚夹城为二道;周德威、李存审各分道进攻,军士鼓噪,三道齐进。李嗣源坏夹城东北隅,率先掩击,梁军大恐,南向而奔,投戈委甲,噎塞行路,斩万余级,获其将副招讨使符道昭洎大将三百人,刍粟百万。梁招讨使康怀英得百余骑,出天井关而遁。梁祖闻其败也,既惧而叹曰:“生子当如是,李氏不亡矣!吾家诸子乃豚犬尔。”初,唐龙纪元年,帝才五岁,从武皇校猎于三垂岗,岗上有明皇原庙在焉。武皇于祠前置酒,乐作,伶人奏《百年歌》者,陈其衰老之状,声调悽苦。武皇引满,捋须指帝曰:“老夫壮心未已,二十年后,此子必战于此。”及是役也,果符其言焉。
是月,周德威乘胜攻泽州,刺史王班登城拒守。梁将刘知俊自晋、绛将兵赴援,德威退保高平。帝遂班师于晋阳,告庙饮至,赏劳有差。乃下令于国中,禁贼盗,恤孤寡,征隐逸,止贪暴,峻堤防,宽狱讼,期月之间,其俗丕变。帝每出,于路遇饥寒者,必驻马而临问之,由是人情大悦,王霸之业,自兹而基矣。
六月,凤翔李茂贞、邠州杨崇本合四川王建之师五万,以攻长安,遣使会兵于帝,帝遣张承业率师赴之。
九月,邠、岐、蜀三镇复大举攻长安,遣李嗣昭、周德威将兵三万攻晋州以应之。德威与梁将尹皓战于神山北,梁人大败。是时,晋之骑将夏侯敬受以一军奔于梁,德威乃退保隰州。
天祐六年秋七月,邠、岐二帅及梁之叛将刘知俊俱遣使来告,将大举以伐灵、夏,兼收关辅,请出兵晋、绛,以张兵势。八月,帝御军南征,先遣周德威、李存审、丁会统大军出阴地关,攻晋州,为地道,坏城二十余步,城中血战拒守。梁祖遣杨师厚领兵赴援,德威乃收军而退。(《通鉴》引《庄宗实录》云:汴军至蒙坑,周德威逆战,败之,斩首三百级,杨师厚退保绛州。是役也,小将萧万通战殁,师厚进营平阳,德威收军而退。)
天祐七年秋七月,凤翔李茂贞、邠州杨崇本皆遣师来会兵,同讨灵、夏。且言刘知俊三败汴军于宁州,灵、夏危蹙,岐、陇之师大举,决取河西。帝令周德威将兵万人,西渡河以应之。是役也,刘知俊为岐人所构,乃自退。
九月,德威班师。冬十月,梁祖遣大将李思安、杨师厚率师营于泽州,以攻上党。十一月,镇州王镕遣使来求援。是时,梁祖以罗绍威初卒,全有魏博之地,因欲兼并镇、定,遣供奉官杜廷隐、丁延徽督魏军三千人入于深、冀,镇人惧,故来告难。帝集军吏议之,咸欲按甲治兵,徐观胜负,惟帝独断,坚欲救之,乃遣周德威率军屯于赵州。是月,行营都招讨使丁会卒。
十二月丁巳朔,梁祖闻帝军屯赵州,命宁国军节度使王景仁为北面行营招讨使,韩勍为副,相州刺史李思安为前锋,会魏州之兵以讨王镕;又令阎宝、王彦章率二千骑,会景仁于邢、洺。丁丑,景仁营于柏乡,帝遂亲征,自赞皇县东下。辛巳,至赵州,与周德威兵合。帝令史建瑭以轻骑尝寇,获刍牧者二百人,问其兵数,精兵七万。是日,帝观兵于石桥南。诘旦,进军,距柏乡一舍,周德威、史建瑭率蕃落劲骑以挑战,四面驰射,梁军闭壁不出,乃退。翼日,进军,距柏乡五里,遣骑军逼其营。梁将韩勍、李思安率步骑三万,铠甲炫曜,其势甚盛,分道以薄帝军。德威且战且退,距河而止。既而德威侦知梁人造浮桥,乃退保高邑。乙酉,致师于柏乡,帝祷战于光武庙。柏乡无刍粟之备,梁军以樵采为给,为帝之游军所获,由是坚壁不出,剉屋茅坐席以秣其马,众心益恐。
天祐八年正月丁亥,周德威、史建瑭帅三千骑致师于柏乡,设伏于村坞间,遣三百骑直压其营。梁将怒,悉其军结阵而来,德威与之转战至高邑南,梁军列阵,横亘六七里。时帝军未成列,李存璋引诸军阵于野河之上,梁以五百人争桥,镇、定之师与血战,梁军败而复整者数四。帝与张承业登高观望,梁人戈矛如束,申令之后,嚣声若雷,王师进退有序,步骑严整,寂然无声。帝临阵誓众,人百其勇,短兵既接,无不奋力。梁有龙骧、神威、拱宸等军,皆武勇之士也,每一人铠仗,费数十万,装以组绣,饰以金银,人望而畏之。自巳及午,骑军接战,至晡,梁军欲抽退,尘埃涨天,德威周麾而呼曰:“汴人走矣!”帝军齐噪以进,魏人收军渐退。李嗣源率亲军与史建瑭、安金全兼北部吐浑诸军冲阵夹攻,梁军大败,弃铠投仗之声,震动天地,龙骧、神威、神捷诸军,杀戮殆尽。自阵至柏乡数十里,僵尸枕籍,败旗折戟,所在蔽地。夜漏一鼓,帝军入柏乡,梁军辎重、帐幄、资财、奴仆,皆为帝军所有。梁将王景仁、韩敬、李思安等以数十骑夜遁。是役也,斩首二万级,获马三千匹,铠甲兵仗七万,辎车锅幕不可胜计。擒梁将陈思权以下二百八十五人。帝号令收军于赵州。既而梁人弃深、冀二州而遁。