且說正當冒頓單於大軍有序向李曦辛桐壓上的時候,天色已經黑了。突然間,匈奴大軍的西麵響起了秦弩的聲音,隨即就是無數的弩箭向匈奴大軍射來。這時連冒頓單於都不明白了,難道秦軍在這裏也設了巨大的埋伏圈?冒頓單於即刻傳令大軍停止北上,先探明情況再做計較。當秦弩射擊了十多輪以後,西邊響起了驚天動地的衝殺聲。冒頓單於由於不明敵情,不敢率王庭本部精銳射鷹者出擊,想到北邊有秦軍阻擊,西麵此刻也喊殺震天,東麵大秦的長城阻擋還有守軍,於是下令單於王庭本部的十萬兵馬迅速撤退南下脫離戰場。單於王庭本部的十萬騎兵一撤走,丟下的十萬普通匈奴兵馬瞬間就沒了膽氣,紛紛被西麵和北麵這兩支秦軍殺得潰敗了。殺到黎明時分,停止了戰鬥,因為剩下的兩萬多匈奴騎兵投降了。
兩支秦軍彙合到一處的時候,原來西麵殺來的秦軍是蒙恬率領的三萬九原騎兵。他們趁李曦辛桐阻擊匈奴大軍的時候北上繞過了匈奴大軍到西麵等候了一天了,此刻殺出來夾擊匈奴中間的十萬兵馬。這一仗打下來,李曦和辛桐隻有三千兵馬了,而蒙恬的三萬騎兵也隻有一萬餘兵馬了。他們一起押著匈奴俘虜進了長城,然後迅速北上九原城了。
天亮後探明敵情的冒頓單於覺得羞愧不已,同時也怒火中燒,自己每次都被蒙恬的謀劃耍得團團轉,昨夜又是利用他的多疑,要是自己果敢向北殺上去,說不定就大勝了,可是沒有後悔藥吃。於是冒頓單於下令不顧一切後果,大軍立刻全速殺向北邊的九原城。
且說程知義、蒙軍率領兩萬騎兵以及西郡王昆月帶領八萬月氏舊部沿直道快速北上到九原和李信彙合了。李信根據蒙恬的將令安排從鹹陽來援的騎兵主將羌廆鎮守九原城,自己即刻率領雁門關來的十萬大軍出九原北上陰山,朝冒頓單於駐紮的臨時王庭殺去。這個匈奴的臨時王庭也有十萬匈奴騎兵,不過這些可不是精銳了,更多的是牧民組成的。他們也探到秦軍殺過來了,於是也列陣出擊。李信知道九原大軍的精銳遠勝匈奴兵,於是直接下令程知義、蒙軍率領兩萬騎兵左翼出擊,西郡王昆月帶領八萬月氏舊部右翼出擊,直接和匈奴騎兵決戰。左翼的九原騎兵把匈奴殺得節節敗退,出乎李信意料的是,右翼的八萬月氏大軍居然被匈奴殺得節節敗退。於是隻好自己親自率領五千九原騎兵過去助陣,才能勉強和匈奴殺個平手。雙方從響午一直殺到深夜,匈奴終於頂不住九原大軍的衝殺了,開始潰敗北逃了。戰鬥結束後西郡王率領僅剩的三萬餘月氏舊部尋找到他們的家眷和押送匈奴的家眷返回九原了。這一戰下來,九原大軍的兩萬騎兵隻有一萬人了,月氏騎兵也隻有三萬人了,砍殺了八萬匈奴騎兵。第三天後他們都返回到了九原城。
在李信率軍返回到九原的前一天蒙恬已經到達九原了,當李信進入九原城後,冒頓單於率領十萬匈奴大軍也到達九原城三十裏外了。蒙恬當機立斷,決定不等匈奴安營紮寨,趁其立足未穩即刻出擊。於是蒙恬下令道:“羌廆、程知義和蒙軍率領鹹陽新來的三萬大軍以及月氏的三萬大軍用戰車擺出大陣正麵射擊匈奴;李曦和辛桐分別率領一萬精銳騎兵從兩翼迂回包抄匈奴大軍。”眾將拱手大吼一聲道:“諾!”便領命紛紛領兵出發了。
當夜色將來的時候,冒頓單於看到已經到達九原城了,決定大軍休整一夜,明日開始攻城。可是正下令安營紮寨的時候,探馬來報:秦軍從九原城出來,此刻已經殺奔過來了!!!冒頓單於隻好下令倉促應戰。
羌廆、程知義和蒙軍率領的戰車兵看到匈奴的先鋒大軍進入了秦弩的射程,副將們立刻下令前方的大軍朝匈奴大軍進行射擊。這大半年來被弩箭射得膽寒的匈奴士兵們,此刻正是夜幕降臨時分又聽到空中嗡嗡響起了秦弩箭的聲音,匈奴大軍的前鋒頓時出現了一陣混亂。秦軍右側的程知義看到匈奴前軍出現混亂,立刻下令本部兵馬舍棄戰車,改成騎兵瘋狂殺向自己大軍前方的匈奴大軍。程知義大軍的這一陣痛殺,竟敢一個多時辰的猛衝猛打後,把匈奴前軍的一側殺得潰敗不成軍,紛紛往後逃跑。
右側的匈奴前軍往後逃跑恰好撞上了冒頓單於的主力大軍,此刻正是慢慢進入黑夜,互相之間用眼睛很難分辨敵我了,加上此刻前方喊殺震天馬蹄聲如雷,匈奴主力大軍以為這下潰逃回來的匈奴兵是追殺過來的秦軍,於是硬著頭皮殺上去。這下子把匈奴的主力大軍也殺得大亂起來了,程知義抓住這個千載難逢的時機,率領大軍掩殺過去。匈奴大軍的主力軍陣經過一個多時辰的混亂後被程知義的大軍衝亂起來了。