北衛(wèi)城大戰(zhàn)之后的第三天,烏利可汗率領(lǐng)柔然主力到達(dá)了野孤嶺前線。這位身經(jīng)百戰(zhàn)又有雄才大略的君王沒有責(zé)罰扎蘭丁和失烈門,而是先祭拜了野孤嶺戰(zhàn)場,又祭奠了在北衛(wèi)城戰(zhàn)死的將士,并派出了大量小股騎兵到大同周邊進(jìn)行哨探。當(dāng)確認(rèn)雁門關(guān)外并無周朝援兵后,他親率十萬兵馬一舉包圍了大同城。之后,烏利可汗讓部隊(duì)進(jìn)行了兩次試探性的進(jìn)攻,結(jié)果都被擊敗。隨即,他命令大軍在大同城外挖塹筑壘,打算長期圍困該城。
針對柔然人的部署,宋啟愚也對城防進(jìn)行了相應(yīng)的調(diào)整??紤]到朝廷援軍在短時間內(nèi)難以到達(dá),又念及敵人兵力強(qiáng)大,不能馬上擊破,宋啟愚隨向東邊的張洪濤和西邊的張永德發(fā)信求助。由于西北地區(qū)也在抗擊柔然和西羌的進(jìn)攻,無力它顧,所以張永德并未理睬關(guān)北來的信使。倒是燕熱宣慰使張洪濤在了解了關(guān)北戰(zhàn)況后,下令媯州、武州等地抽調(diào)部隊(duì),伺機(jī)支援大同??墒?,武州鎮(zhèn)守使馬慶明因怨恨宋啟愚彈劾過其子馬健東,以本地也有戰(zhàn)事為名,拒絕出兵關(guān)北,并扣下了宣慰使司發(fā)往其他各州的調(diào)軍文書,致使支援關(guān)北的軍隊(duì)始終未能組建。
烏利可汗在圍城半個月之后,對大同城發(fā)動了進(jìn)攻。宋啟愚登上城樓,迅速判斷了柔然人的攻擊重點(diǎn)。他對身后的將領(lǐng)們說道:“從地形上看,北衛(wèi)城地勢最高,西衛(wèi)城次之,敵人一定會重兵攻擊這兩處。而東衛(wèi)城和南城,敵人均要仰攻,需付出較大代價。故而,段衛(wèi)國、曹可用?!倍⒈┒Y道:“在?!彼螁⒂廾畹溃骸澳愣思纯填I(lǐng)三千兵馬到北衛(wèi)城去,跟那里的莊必成、宋啟智一道固守城池?!倍⒋鹆寺暿牵D(zhuǎn)身下城,點(diǎn)兵前去御敵。宋啟愚又命令說:“吳襄,常斌,你們領(lǐng)三千兵馬到西衛(wèi)城,跟李開復(fù)、董陽共同打擊敵軍?!倍㈩I(lǐng)令,往西衛(wèi)城去了。接著,宋啟愚又命令張廣勝和伍名帶著一千弓箭手加強(qiáng)東衛(wèi)城防御,郭林和姚凱帶著一千士兵加強(qiáng)南城防御。待眾將走后,宋啟愚叫過毛小和申鯉,讓他們各帶兩千兵馬隨時準(zhǔn)備增援各處。最后,宋啟愚跟余天錫說:“該讓炮隊(duì)一顯身手了。你們訓(xùn)練得怎么樣?能投入戰(zhàn)斗嗎?”余天錫興奮地說:“咱這五百人早就準(zhǔn)備好了,隨時都能上戰(zhàn)場?!彼螁⒂迗?jiān)毅地說:“好。等敵人的第一輪攻擊結(jié)束,我就大體上能判定出他們究竟要強(qiáng)攻哪里。到時候,你把三十門大炮全都架上城頭,集中攻擊柔然人的沖鋒部隊(duì),消滅敵人的有生力量?!庇嗵戾a大聲叫嚷道:“末將遵令?!?p> 從辰時開始,柔然大將哈量臺命令部隊(duì)反復(fù)沖擊著北衛(wèi)城。四千多柔然騎兵來回奔馳,箭發(fā)如雨,器械部隊(duì)運(yùn)送著砂石木料上前填埋河道。城上的莊必成、宋啟智等將領(lǐng)則以弓箭、床子弩還有拋石車打擊著敵軍。不時有將士倒下,雙方的傷亡都很大。在東衛(wèi)城,張廣勝和伍名也在奮力抵擋來自扎蘭丁的攻擊。在南城,失烈門親臨一線,與士兵們一同攻城,甚至在身中兩箭的情況下,也不愿后退。戰(zhàn)斗最為激烈的,當(dāng)屬西衛(wèi)城,柔然宰相摩柯莫命五千重裝騎兵前出到護(hù)城河邊,掩護(hù)后面的器械部隊(duì)架設(shè)浮橋。由于這些士兵和戰(zhàn)馬通身都有重甲保護(hù),動作雖然遲緩,卻不會被弓箭所傷。這給周軍造成了極大的困擾。董陽惱怒地擂著城垛罵道:“媽的,這些狗日的‘鐵浮屠’,咋就射不死呢!命令拋石車加快拋射速度,一定不能讓他們把浮橋架起來?!本驮谶@時,一支雕翎向他面門飛來。董陽想躲已經(jīng)來不及了。他只能最大限度地向旁邊甩頭。就聽“嘣”的一聲,董陽中箭,摔倒在幾尺開外。身邊的士卒趕緊上去搶救。董陽滿臉是血,嘴里還噴著血沫說:“托木豆,樓了個的破了……”幾個親兵聽不清楚他說什么,先幫他檢查了傷勢,這才發(fā)現(xiàn)他的幾顆牙齒被箭鏃擊落,腮幫子上還被射穿了一個洞。在不遠(yuǎn)處指揮作戰(zhàn)的吳襄跑過來,一邊讓人替董陽上藥包扎,一邊吩咐說:“奶奶的,讓大伙把箭頭都沾上桐油,用火箭射他們。你們再去調(diào)幾架床子弩來,射穿了這些混蛋?!?