這一年漢廷損失兩位將軍,翕侯趙信叛變,漢軍出征建功不多,因此衛青沒有得到封賞。蘇建返回後,武帝沒有殺他,隻是讓蘇建花錢贖罪,而後將蘇建貶為庶人。武帝賞賜衛青一千金。當時王夫人正在受到武帝的寵幸,寧乘勸衛青,說:“將軍功勞不是很多,卻可以享受萬戶食邑,三個兒子也受封為列侯,這是因為皇後的緣故。現在王夫人受到皇帝寵幸,而王夫人的親屬卻還不富貴,將軍何不拿出皇帝賞賜的千金,為王夫人母親祝壽。”衛青拿出五百金為王夫人的母親祝壽。武帝聽說此事後,就此事詢問衛青,衛青將寧乘教給他做此事的經過稟報武帝,武帝任命寧乘為東海郡都尉。
校尉張騫跟隨大將軍,此前張騫曾經出使大夏國,在匈奴逗留的時間很久,了解草原情況,可以引導漢軍,找到水源和牧草豐美的地域,漢軍出征,沒有受到饑渴的煎熬,因為此前出使西域有功,武帝封張騫為博望侯。
霍去病被封為列侯第三年,元狩二年(公元前121年)春天,霍去病擔任驃騎將軍,率領一萬漢軍騎兵從隴西郡出兵,再次建立功勳。武帝說:“驃騎將軍率領大軍翻越烏戾山,征討速濮部落,渡過狐奴河,跨越五個匈奴王國,將繳獲的敵人輜重、俘虜、投降的部眾置於身後,直搗敵寇巢穴,幾乎擒獲匈奴單於的兒子。轉戰六天,翻越焉支山,行進一千餘裏,短兵相接,在皋蘭山下鏖戰,斬殺折蘭王,斬殺盧侯王,強敵在漢軍麵前,紛紛瓦解,漢軍全身而退,捕獲甚多,捕獲的匈奴有渾邪王子和相國、都尉,斬殺匈奴八千九百六十人,繳獲休屠王祭天的金人,殲滅匈奴的部眾達十分之七,加封霍去病食邑二千二百戶。”
元狩二年夏天,霍去病與合騎侯公孫敖從北地郡出兵,而後兵分兩路。博望侯張騫、郎中令李廣從右北平郡出兵,而後兵分兩路。李廣率領四千漢軍騎兵在前,張騫率領一萬漢軍騎兵在後。匈奴左賢王率領數萬騎兵包圍李廣,李廣所率領的漢軍與匈奴大戰二天,死傷過半,殺傷的敵軍,數字也大致相當。張騫率領的漢軍趕到戰場,匈奴引兵退去。張騫因為行軍滯後,不能及時抵達戰場,按照漢朝法律當斬,花錢贖罪後被貶為庶人。霍去病率領的漢軍從北地郡出兵,深入敵境,合騎侯公孫敖迷失道路,沒有與驃騎將軍的大軍會合。霍去病一路衝殺至祁連山下,捕獲的匈奴非常多。武帝說:“驃騎將軍渡過鈞耆河,渡過居延河,抵達小月氏部落,攻下祁連山,在鱳(lè)得縣耀武揚威,擒獲單於手下的單桓王、酋塗王,以及匈奴的相國、都尉,迫使二千五百位匈奴人投降,可謂戰功卓著,震懾敵寇。此次大捷,共俘虜匈奴三萬零二百人,有五位王,有匈奴王的母親,單於的閼氏、還有王子以下五十九人,相國、將軍、當戶、都尉六十三人,出征將士大約損失十分之三,加封霍去病食邑五千四百戶。賜跟隨霍去病抵達小月氏的校尉左庶長爵位。鷹擊司馬趙破奴第二次跟隨驃騎將軍,在戰場上斬殺匈奴速濮王,擒獲稽且王,手下的右千騎將擒獲匈奴王,還有王的母親,王子以下四十一人,俘虜匈奴部眾三千三百三十人,加上上次捕獲的一千四百人,封趙破奴為從驃侯。校尉高不識跟隨驃騎將軍,擒獲了呼於耆王子以下十一人,俘虜匈奴部眾一千七百六十八人,封高不識為宜冠侯。校尉仆多也有功勞,封為輝渠侯。”合騎侯公孫敖因為沒有與驃騎將軍會合,貽誤軍機,按照漢朝法律當斬,花錢贖罪後被貶為庶人。其他將軍所率領的漢軍,戰鬥力不如霍去病,霍去病率領的漢軍經過嚴格挑選,也敢於孤軍深入敵境,霍去病率領著驍勇善戰的漢軍,衝鋒在前,似乎也有著上天在幫助,霍去病從來沒有遇到過絕境。其他將領則沒有這麼好的運氣。此後霍去病日益受到武帝賞識,在朝中堪與大將軍比肩。
再後來,伊稚斜單於怨恨渾邪王駐守在西部,一再遭受漢軍打擊,損失數萬人,這些損失均是在驃騎將軍的打擊下造成的,伊稚斜單於召渾邪王到匈奴王庭來,要殺掉他。渾邪王與休屠王商議後,決計投降漢朝,派人先到邊境聯絡。此時大行令李息正在黃河岸邊修築城堡,捕獲渾邪王派來的使者,馬上向武帝報告。武帝擔心匈奴投降有詐,妄圖乘機襲擊漢朝邊郡,於是詔令霍去病率領漢軍前往迎降。霍去病率軍渡過黃河,與渾邪王的部眾遙遙相望。渾邪王手下的裨將、小王看到漢軍後,很多人開始猶豫彷徨,有人逃跑。霍去病當機立斷,率軍馳入敵陣,與渾邪王相見,斬殺企圖逃跑的匈奴八千人,然後讓渾邪王登上傳車,先行抵達皇帝行宮,再將其餘的匈奴部眾分批渡過黃河,投降的匈奴有數萬人,號稱十萬。抵達長安後,天子賞賜這些投降的匈奴金錢達億萬。賜予渾邪王食邑一萬戶,封為漯陰侯。封渾邪王手下的裨王呼毒尼為下摩侯,雁疪為輝渠侯,禽黎為河綦侯,大當戶調雖為常樂侯。武帝讚賞霍去病的勇敢,說:“驃騎將軍去病率領漢軍征討匈奴,西域渾邪王及其部眾萌發投降漢朝的想法,漢軍以軍糧接待他們,將軍率領一萬驍勇善戰的漢軍將士,誅殺那些冥頑不靈的匈奴悍匪,據捷報,斬首八千人,招降匈奴王三十二人。漢軍將士沒有傷亡,而匈奴十萬之眾歸降。正是漢軍千裏征戰,才換來黃河一帶,沿邊要塞的安寧,邊郡從此不再有邊患。以一千七百戶加封驃騎將軍。撤消隴西郡、北地郡、上郡的一半戍卒,以減輕天下徭役。”武帝將投降的匈奴部眾,分散安置在邊境的五個郡,還是原來塞外的地方,位置在黃河以南,按照匈奴民族的生活習俗,稱為屬國。元狩三年(公元前120年),匈奴再次入侵右北平郡、定襄郡,殺害漢朝軍民一千餘人。
接下來一年,武帝與將軍們商討:“翕侯趙信為單於設謀,以為漢軍不敢穿越沙漠。深入進匈奴腹地,現在我們派大軍奇襲,一定可以大獲全勝。”這是元狩四年(公元前119年)。當年春天,武帝詔令大將軍衛青、驃騎將軍霍去病各率領五萬騎兵,加上步兵和後勤輜重,共有幾十萬人馬,選擇敢於不畏強敵,深入匈奴縱深的漢軍,交予霍去病指揮。霍去病最初準備從定襄郡出兵,直接與伊稚斜單於對陣。從捕獲的匈奴口中得知,伊稚斜單於在東邊,於是又改變了行軍路線,霍去病從代郡出兵,衛青從定襄郡出兵。郎中令李廣擔任前將軍,太仆公孫賀擔任左將軍,主爵趙食其擔任右將軍,平陽侯曹襄為後將軍,全部歸大將軍節製。趙信為伊稚斜單於出謀劃策,說:“漢軍即使穿越沙漠。也一定會人困馬乏,到了那時候,匈奴可以坐等捕獲漢軍俘虜。”於是伊稚斜單於向沙漠以北運送輜重,布置精兵在沙漠以北迎候漢軍。此時衛青率領的漢軍已經出塞一千餘裏,與伊稚斜單於的大軍迎麵相遇,匈奴騎兵嚴陣以待,迎擊漢軍。衛青命令漢軍用武剛車環繞陣地,加固漢軍陣營,而後命令五千騎兵,向匈奴戰陣發起勇猛衝擊,伊稚斜單於指揮上萬騎兵,縱馬揮刀迎戰漢軍。兩支大軍混戰在一起,隻殺得夕陽西墜,狂風呼哨,一時間天昏地暗,飛沙走石,戰場上兩軍相遇,難以辨認對方,漢軍此時又從左右兩翼包抄上來。麵對著漢軍的勇猛衝殺,在伊稚斜單於的眼中,漢軍如同狂飆驟起,鋪天蓋地般地殺來,喊殺聲響徹雲天,匈奴軍隊逐漸不支,在薄暮中,伊稚斜單於帶上六匹健騾,還有貼身的幾百名騎兵,突破漢軍重圍,向西北方向落荒而逃。夜幕降臨,漢軍、匈奴騎兵仍然在抓對廝殺,兩軍死傷的人數大致相當。漢軍左校尉捕捉到的俘虜,說單於在天黑前就已經突圍出去,漢軍隨即派出輕騎兵,乘著夜色猛追窮寇,衛青緊隨其後。匈奴殘軍逐漸散去。第二天黎明,漢軍已經追出去二百餘裏,沒有找到伊稚斜單於,總結戰況,此次大戰,斬殺俘獲匈奴一萬多人,衛青遂率領大軍,直達寘(tián)顏山趙信城,繳獲匈奴存留下來的大批軍糧。漢軍在趙信城停留一天,凱旋而歸,臨走時,除補充漢軍,將剩下來的糧食全部燒毀。
衛青與伊稚斜單於會戰時,前將軍李廣、右將軍趙食其的部隊從東邊迂回,途中迷失道路。大將軍率領漢軍返回,穿越沙漠,在沙漠以南碰上這兩隻掉隊的漢軍。衛青要向皇帝奏報整個戰役穿越,讓大將軍幕府長史詢問李廣為何延誤時機,責令李廣說明原因,李廣自殺。趙食其撤軍返回後,被判處死罪,花錢贖罪後被貶為庶人。衛青大軍返回後,統計戰果,此次出征,共斬殺捕獲匈奴一萬九千餘人。
當時匈奴部眾已經與伊稚斜單於失去聯係,前後長達十幾天時間,右穀(yù)蠡王遂自立為單於。伊稚斜單於與部眾又再次會合,右穀蠡王隨即取消單於稱號。
霍去病率領的漢軍,騎兵、後勤輜重與大將軍一樣,但是沒有裨將。隻是任命李敢等人擔任校尉,負裨將責任。大軍從代郡、右北平郡出發,前進二千餘裏,遇到匈奴左賢王的部隊,在戰場上斬殺、捕獲的匈奴,數字超過衛青。
兩路大軍返回後,武帝說:“驃騎將軍霍去病率領漢軍征討匈奴,攜帶少量輜重,穿越沙漠,深入匈奴腹地,涉河擒獲單於重臣章渠,斬殺北車耆王;轉而進攻左大將雙,繳獲旗鼓,翻越難侯山,渡過弓盧河,擒獲屯頭王、韓王等三人,將軍、相國、當戶、都尉等八十三人;在狼居胥山祭天,在姑衍山祭地,抵達翰海,斬殺擒獲匈奴達七萬零四百四十三人,所率漢軍損失十分之二,從繳獲中補充漢軍的軍糧輜重,長途奔襲,仍然能夠保證軍糧供應不絕。加封驃騎將軍食邑五千八百戶。右北平郡太守路博德隸屬驃騎將軍,約定在興城會合,按期抵達,跟隨大軍抵達檮(táo)餘山,斬獲匈奴二千八百人,封路博德為邳離侯。北地郡都尉衛山跟隨驃騎將軍擒獲匈奴小王,封衛山為義陽侯。原歸義侯因淳王複陸支,樓剸(tuán)王伊即靬跟隨驃騎將軍征討匈奴有功,封複陸支為杜侯,封伊即靬為眾利侯。從驃侯趙破奴、昌武侯趙安稽跟隨驃騎將軍征討匈奴有功,各加封食邑三百戶。漁陽郡太守解、校尉李敢在這次征討匈奴的戰役中,繳獲戰鼓、旗幟,賜予關內侯爵,漁陽郡太守解享受食邑三百戶,李敢享受食邑二百戶。賜校尉徐自為左庶長爵。”軍中官吏、士卒升官、受到賞賜的極多。衛青此次出征沒有得到封賞,軍中官吏、士卒也沒有得到封賞。隻有西河郡太守常惠、雲中郡太守遂成受到封賞,遂成的俸祿達到諸侯國相,享受食邑二百戶,黃金百斤,常惠受賜為關內侯爵。