由于萊陽府特殊的地理位置,雙方只能正面硬碰硬靠著純實力作戰,雙方均將戰場選在了萊陽府伯陵縣的公雞坡。
雞公坡高度差并不大,十數里地長坡只有不到十米的落差,齊軍在雞公坡下方,而唐軍在雞公坡上方。
十二月八日,決戰開始兩支中原王朝最強的軍隊就此相遇。
太陽高升之后,天空萬里無云,早冬的空氣干爽帶著清涼,幅員數十里的曠野上,煙塵騰起。齊軍陣地旗幡飄舞、戰鼓隆隆、戰馬嘶鳴,大隊的步兵和騎兵穿著閃亮的盔甲、舉著明晃晃刀槍,列著縱隊往北推進。
正前方,十五萬武唐軍隊已列好隊形,嚴陣以待。
蕭開以祁遠山的幽州軍、趙孚的幽州鐵衛、張通明的龍衛作為中軍主力,以奚自強的并州軍和易光的水鬼軍團作為后軍,以蕭定山的禁軍和倪爾春的重甲步兵為左翼,以王三燕的鐵山槊刀軍和呂游的代州軍作為右翼,以李沅和蕭定方的輕重騎兵作為機動部隊。
戰鼓聲響起之后,唐軍慕容輝率軍出擊,張通明的龍衛作為前軍應戰。
齊軍多次沖擊唐軍前陣,但唐軍陣型整齊并不散亂。待齊軍士氣衰竭之時,慕容輝突然下令軍隊前插,此時唐軍箭如雨下、刀槍如林,張通明的齊軍抵擋不住,隊伍漸漸散亂起來,不斷地往后退卻,慕容輝趁機抓住戰機下令猛攻。
張通明大驚失色,當即脫掉甲胄裸著上身,手持長刀立于陣前,大呼奮擊,所遇唐軍兵將遇到張通明皆被斬殺兩段。在殺了數十唐軍將士之后,齊軍才穩住陣腳,張通明隨后指令迅速整隊,恢復陣線。
張通明一馬當先率領將士自下坡殺向上坡,勢不可擋,突前的齊軍死士營生生將唐軍正面撕開一個缺口,后續齊軍一下從缺口擁入。
唐軍拼死想把缺口堵住,但面對如潮的齊軍一時很難達到目的。戰斗中,慕容輝去救自己的部將,被箭射中眼眉,肉皮垂下,將眼遮住。慕容輝將箭拔出,撕掉肉皮,滿臉是血仍死戰不退。
此時齊軍左右兩翼也陷入了與唐軍的交戰之中,雙方幾乎攪合在了一起,誰都撤不下來,誰都不能撤退,幾乎每一個呼吸都要死七八個人。李存義見此慘烈也想不到,如此傷亡之下,對方居然毫無懼色。
無奈之下,李存義下令慕容陲率騎兵部隊繞齊軍后方包抄,攻打齊軍主帥大營。
但齊軍早就防著這一手,蕭開下令給李沅和蕭定方,令其騎兵出動,全殲唐軍騎兵。雙方騎兵在雞公坡以東的雞公河灘遭遇,李沅的重騎兵硬沖敵軍,將唐軍騎兵壓制在一個狹小空間,導致唐軍騎兵喪失了機動性,不得不與齊軍重騎兵對砍。