十二月二十四日巳时,鲜卑人饱餐一顿后,在白登山脚结成阵势,六万人的队伍分成五列,他们同时下山进军,从北往南以此排列是:置鞬莫罗、日律推臣、宴荔游孤迄侯、没鹿回窦宾、副伏罗去宾,而拓跋诘汾率一万人马,驻留在白登山上总揽全局。
汉军此时正要用膳,栉比的军营里升起袅袅炊烟,临近年关,今日诸军加饭,士兵们都颇为高兴,他们忽而远见鲜卑人从山间前来,不由大为扫兴,只能先搁置饭食,回到营房中拿出甲胄兵器。这时汉军以为鲜卑人只是故技重施,大概尝试一阵便会退军,但等鲜卑人距离鹿角仅五里时,他们才发现此次大为不同,鲜卑人全军压进,一看便要在此地一决生死。
军司马顾益看见山间、林间俱是鲜卑的人马,地上的砂石也随之跃动,他大为紧张,忙派使者去帅营通报情形,而后又下令敲响战鼓,鼓声震耳,士兵们也自觉列阵在鹿角之后,等待鲜卑人的第一轮冲锋。
近两月交战下来,双方对对方的战术都算熟稔了。此次鲜卑的前锋不再是甲骑具装,而是推着木楯的甲士,他们用麻布包着武靴,踏足在薄冰上,顶着汉军的箭雨一直向前,目标赫然是汉军在丘陵处突出的部分鹿角。
但汉军也做过准备,鲜卑上次突袭之后,顾益也感到此处防御薄弱,他便在丘陵上设置了三座望楼,且围着望楼和鹿角再挖了两圈壕沟,但缺陷在于,他也未料想到鲜卑军会在此地决战,以决战而言,这些布置显然远远不够。这些最前列的鲜卑甲士抬着一丈二尺的木楯,一直走到壕沟前,后方的鲜卑射手不断远射箭矢,掩护他们将木楯架在壕沟上,此地的汉军与鲜卑人兵力悬殊,即使以长矛拼命戳刺,也不过拖延了两刻钟。不少鲜卑甲士跳入壕沟内,顶着木楯驾上对岸,如此驾成十三座小桥后,鲜卑大军便成功涌入到鹿角之内,与汉军进行肉搏厮杀。
顾益在中军的望楼内远望这幅场景,心中畏惧到极点,他遥望四周想:传令的士兵还未回来吗?但眼中浮现的是更为可怖的景象。在平城之西,汉军布置有两阵一万两千人,占据着长约四里的战线,一丈内有三四人而已,而此时鲜卑人全线猛攻,每名汉军都要阻挡四倍于己的敌人,在顾益看来,敌我的对比就如同溪流与狂涛,但即使想向临近的令狐渊阵求援,令狐渊也无援兵可派了。
他又指挥军队勉力阻挡了两刻,但前线的士卒到底力不从心,壕沟间逐渐涌出越来越多的破口,而丘陵上的望楼都支撑不住,被鲜卑军攻下后又推倒了,散为一地的滚木。这时后背处传来一阵粗犷的角声,平城的城门大开,步度根眼看拓跋诘汾的援军卓有成效,当即号令城中所有能战的部民尽数出战,向顾益部背部发起冲击,但他们首先也要跨过对内的壕沟,这给了顾益最后的反应时间。顾益也别无选择,他当即用旗语下令,让全军向他靠拢结阵,放任鲜卑大军突破工事。
拓跋诘汾见汉军放弃工事,认为这是决定胜负的大好时机,便要将最后的军队也压上去,他对随他初阵的儿子拓跋力微说:“你母亲说你是阴山之子,我也一直当你是壮大我族的骄子,此次你初战,跟在我身后恐怕遭族人非议,这次冲阵,你就到最显眼的地方,让诸部看你杀敌的英姿吧。”拓跋力微时年十六,他非常年轻,身材孔武,更勇于表达自己的意见:“我观此时局势,诸部已占据主动,若是任由战局发展,便是没有我部,也能大获全胜,但敌人尚有八阵未动,如何变阵,实是难以预料的事,不如稍等片刻,看汉人后续手段再说罢。”拓跋诘汾闻言大为讶异,他思虑一番,觉得儿子的意见颇有道理,便让手下人马继续驻留山上,观察汉军的变动。
鲜卑人下山时,城南的刘备与陈冲都站在望楼上,远远便看见鲜卑人如狼群的攻势,但他并没有令诸阵动作,便是顾益军使到来求救,中郎将也没有援助,反而是说:“先让所有的骑士上马,然后再等一等。”众人都不明白缘由,等到望楼上望见城东大开城门,步度根率众杀出时,刘备才再次下令说:“可以破阵了。”阵中的士卒们迅速往壕沟中推土,很快就在壕沟中推出一条两丈宽的道路来,全军有一万骑士,刘备分给张飞四千,让他们就从此处出发,先去进攻内侧出击的步度根部。而后又分给关羽六千骑士,让他从城北出阵,绕击白登山部的鲜卑人。其余汉军则尽数开拔,陈冲到城北去,领杨奉、郭大、胡才部袭击鲜卑人右翼,城西的赫连凡莫、且渠智牙斯、刘宣部随刘备一齐袭击鲜卑人左翼。
鲜卑人对此也做过打算,若是剩下的汉军来援,大概是袭击左右两翼,等主攻的日律推臣、宴荔游孤迄侯、没鹿回窦宾三部攻入阵中后,置鞬莫罗、副伏罗去宾两部就地掩护两翼,拖延时间,只要主攻三部凿穿汉阵,与单于汇合一处,便可驱逐溃兵,将汉军围城的阵势彻底冲散。
但单于遇了些问题,步度根率城民冲到汉军阵前,竟无法冲过内侧壕沟,这是因为内侧的壕沟比外侧宽上两丈的缘故,挖壕沟的泥土被汉军堆在阵中,因此汉军能快速推出土道,而单于只能用笨办法,在一边挖土往壕沟中填,只是这样显然太慢了,张飞为追赶时间,令部下都着轻甲驱马,单于不过