柴荣的大军经怀州北上(河南沁阳市),准备从正面迎击北汉的军队,十八日这天,到达泽州。
而北汉国主刘崇不知道柴荣已亲征,他在太平驿初战获胜后,轻敌急进,绕过潞州城而不进攻,继续南下。
十九日,北汉军队到达潞州南边的高平县,突然遭遇后周的前锋军,北汉军激战失利,撤退到高平县南边的巴公镇。
柴荣担心敌军逃跑,催促各路军队急速前进。北汉主率中军在巴公镇已摆开阵势,以张元徽率军在东边,杨衮的契丹族辽军在西边,军队整齐威壮。
但后周河阳节度使刘词的军队尚未到达,大家见北汉的阵容整齐,将军们有些惧怕,而柴荣意志坚定,骑着披甲的战马亲临阵前督战。
柴荣说:“我军不惜在此决战,诸军要尽力杀敌,白重进、李重进率军在西边,樊爱能、何徽率军在东边,向训、史彦超率领精锐骑兵居中央,张永德、赵匡胤带禁军随我左右,今日定要破汉、辽联军。”
刘崇见对面的周军人数不够多,他有些后悔召来契丹军队,于是对众将说:“我独自用汉家军队就可破敌,何必再烦劳契丹!今天不但可以战胜周军,而且还可以让契丹心悦诚服。”
但契丹的大将杨衮驱马向前观望周军,对北汉主说:“我看周军也旗帜鲜明,估计是劲敌,我们要小心一点,不可轻易冒进。”刘崇不听他的建议,杨衮有点不高兴。
这时,东北风正急,一会儿忽然转成南风,北汉枢密副使王延嗣让司天监李义看过天气后,禀报刘崇:
“陛下,现在可以开战,对我军有利。”
但枢密直学士王得中牵住刘崇的战马说:“陛下,现在风向不利,不宜开战。”但刘崇根本不听劝告。
刘崇大呼:“张元徽率东面的军队先发起进攻,撕开周军的右边防线。”
马步军都指挥使张元徽得令后,率领一千多骑兵攻击北周的右路军队。张元徽擅长重骑冲锋,骑兵高大勇猛,战马的铠甲也厚重,冲击力十足。
双方交战没多久,后周侍卫马军都指挥使樊爱能的骑兵本来就有些胆怯,面对攻势果然抵挡不住,胆小的樊爱能竟然带领骑兵先后退而走。
侍卫步军都指挥使何徽带领步兵正在后面列阵,前面的骑兵后退时冲击了步兵,步兵队伍也乱了。指挥使何徽见自己的步兵队伍乱了,也带步兵逃走。周军的右翼屏障崩溃,一千多步兵临阵投降北汉军队。
周世宗柴荣见右翼突然乱了,形势