第二年正月初二,周德威率领骑兵到达柏乡,在村落间设下埋伏,然后命三百骑兵到梁营前挑战,王景仁领兵全部出动,列阵前进。周德威且战且退,将梁军引向平原地带,到了高邑南边。当时晋军的步兵还未列好阵形,周德威便率骑兵列阵河边阻击。等到了中午,双方列阵完毕,李存勖问周德威是否开战,周德威说︰“现在梁军士气还盛,我们可以以逸待劳,然后再与之决战,仓促开战很难取胜。两军交战时,一方按兵不动,都是因为粮草供给不足,士兵饥疲难忍。现在梁贼远道而来与我决战,纵使他们携粮草而来,也难以在战斗中进食。等到日落之后,敌人饥饿难忍,无心恋战,退阵之时,我们再趁势攻击,必获全胜。”众将都表示赞同,李存勖本来以为已经将梁军引诱出来,应该决战了,但看众将都赞成周德威的意见,也就只好同意。战到黄昏,梁军还未进食,将士们又饥又饿,王景仁便率兵稍往后退,准备撤走。周德威见时机已到,立即命令全军向梁军的东西两翼发起猛攻。梁军遭到这出其不意的攻击,阵形顿时大乱,东边的梁军首先开始撤退。周德威命令士兵大喊︰“梁军败走了!梁军败走了!”李嗣源率兵直冲梁军西阵,也让士兵高喊东边的梁军已经败走。在晋军的冲杀之下,梁军被歼殆尽。这一战,晋军共歼敌两万多人,缴获的粮食辎重和兵器无数。由于周德威的机智谋略,晋军没有冒险应战,而是寻找战机,充分利用自己骑兵的冲杀决战的优势,终于取得了这次大战的胜利。从此,镇州和定州反梁而归附河东李存勖一方。梁军只好向南退到魏博地区,梁晋争战的历史进程朝着有利于河东的方向发展。