千將士,狼狽地逃回;而李廣的運氣似乎更壞,竟與匈奴單于主力相遇,兵敗被俘,依仗過人的機智與精湛的騎射本領,奪取匈奴的戰馬逃回。四路大軍之中,只有衛青一軍在擊潰侵入上谷之敵後,深入匈奴境內,直至龍城,斬獲匈奴七百多人後凱旋而還。衛青初次出師就立下戰功,武帝極為高興,賜衛青爵為關內侯,以示獎掖。
經過這次戰爭,匈奴大肆進行報復。同年秋天,匈奴騎兵猛攻漁陽(治今北京密雲西南)一帶。第二年(即元朔元年,前128年),匈奴再次入侵,先攻遼西(治今遼寧凌源西南)一帶,殺掠二千多人,遼西太守以身殉國。匈奴繼而西進,漁陽又告危急,屯守漁陽的老將韓安國幾乎全軍覆滅,只好龜縮在營壘之內等待援軍。匈奴鐵騎在橫掃遼西、漁陽之後,乘勝西進,攻入雁門,殺掠千餘人。就在這危急之際,衛青再次奉命出征,率三萬將士前往雁門迎擊匈奴;將軍李息出代郡,攻擊匈奴後路,與衛青一路遙相策應。衛青率軍直赴雁門後,與入侵匈奴展開激戰,匈奴慘敗,丟下數千具屍首狼狽逃竄。衛青二次出擊均獲全勝,顯示出卓越的軍事才能,聲威鵲起,在隨即展開的著名的河南之戰中,理所當然地成為漢軍的主帥。
漢軍在元光六年、元朔元年二次大規模出兵,雖然取得了一定的戰果,但畢竟是單純的防禦性作戰,既沒有奪取匈奴的戰略要地,也沒有與匈奴主力接戰,匈奴的實力並沒有受到嚴重的削弱。元朔二年(前127年),匈奴又攻入上谷、漁陽,殺掠吏民千餘人。事實證明,漢軍分兵把守,數路並出的作戰方式並不能保障邊境的安全,而且在漢軍退兵之後,匈奴捲土重來,進行瘋狂的報復。當時匈奴主要是在漢邊境的東部連續向漢軍發動進攻,但對漢朝威脅最大的卻不是匈奴東部左賢王的部隊,而是活動於陰山一帶的右賢王與佔據河南地的匈奴樓煩王、白羊王的部隊。尤其是河南地,北接陰山,南距長安不過七百多里,西與匈奴休屠王、渾邪王統轄的河西地區相鄰,東則威脅定襄、雲中郡。自從秦末漢初冒頓單于重佔河南地後,一直就是匈奴南下的基地。因此,為了切斷匈奴東西二部聯絡,徹底消除匈奴對關中地區的威脅,奪取河南地的戰略意義特別重大。匈奴也十分清楚這一點,所以左賢王的軍隊連續進攻漢東部邊境,企圖將漢軍主力吸引過去,減輕漢軍對河南地的壓力。
元朔二年,就在匈奴連續在東部邊郡製造事端,以為漢軍必然應接不暇,疲於救援之時,武帝不為匈奴在東線的進攻所動,採取匈奴東擊,漢軍西進的作戰方針,果斷地發動了著名的河南戰役。奉武帝的命令,衛青第三次出征,統帥數萬大軍從雲中(治今內蒙托克托東北)沿黃河北岸向西北迅速挺進,一舉攻佔高闕(塞名,位於今內蒙錦杭後旗東北),切斷了駐守河南地的白羊王、樓煩王與單于王庭的聯絡。然後衛青立刻率兵南下,沿黃河直驅隴西(治今甘肅臨洮),完成了對白羊王、樓煩王的包圍。等到白羊王、樓煩王察覺身陷重圍之時,在河南的防線已經全面崩潰,只得率領殘部西渡黃河,倉惶逃出塞外。這次戰役,漢軍殲敵數千人,截獲牲畜十多萬頭,全部收復了河南地,取得了對匈奴開戰以來第一次戰略決戰的勝利。衛青對這次戰役的指揮也是極其成功的,一改漢軍在以往作戰中以伏擊、阻擊、增援為主的作戰模式,整個戰役都是在長途奔襲,迂迴包抄的運動作戰的過程中完成的,等到匈奴察覺到漢軍的作戰意圖後,早已陷入漢軍的重圍,失敗的大局已定。衛青也因為奪取河南地有功,被封為長平侯。
漢軍攻佔河南地之後,為了鞏固已有的戰果,武帝採納謀士主父偃的建議,在河南地設定朔方(治今內蒙錦杭旗北)與五原(治今內蒙包頭西北)二郡,命令將軍蘇建率領十多萬人修築朔方城(今內蒙烏拉特旗南),並重新修繕秦時所築的舊長城。同時,從內地移民十多萬人定居朔方,充實邊郡人口,並調運大批糧食以補充軍需民用。從此之後,河南地牢固地控制在漢廷的手中,成為漢軍出擊匈奴的一個重要基地。
河南地的失守及漢設定朔方、五原郡,對於匈奴是一個致命的打擊,右賢王的轄區——匈奴的右部,直接暴露在漢軍的面前;河南地區土地肥沃,氣候溫潤,適於農牧業的發展,對匈奴經濟影響極大。匈奴為了奪回河南地,元朔三年(前126年)冬,以數萬騎兵攻入代郡,太守共友戰死。夏,雁門又遭侵擾。四年,匈奴出動近十萬大軍,兵分三路,進攻代郡、定襄、上郡。五年,右賢王又率部侵入河南地,攻擾朔方。在短短的三年之中,匈奴連續出動大軍不間斷地侵擾邊境,可見匈奴是多麼急