據《史記・匈奴列傳》,漢武帝元光六年 (公元前 129 年) 冬天,匈奴多次寇掠漢朝東北邊境,以漁陽郡尤其嚴重。漢武帝派韓安國屯兵漁陽,以防備匈奴。豈料元朔元年 (公元前 128 年) 秋天,匈奴二萬騎兵攻入遼西,殺當地太守,未幾又東向破漁陽守軍千餘人,韓安國被包圍。援兵到來,安國倖免於難。惟武帝用他屯右北平,而匈奴兵馬正向東北集結,憂忿惶恐之下,安國悶悶不樂。數個月後,嘔血而死。時為元朔二年 (公元前 127 年) 中。
匈奴攻打雁門,「殺略千餘人」,衛青率三萬騎兵出擊,李息亦領兵從代郡出發,匈奴受挫,漢軍斬殺及俘獲敵軍數千人。據《史記・韓長孺列傳》,「是時匈奴虜言當入東方」,換言之,有足夠情報顯示 (來自被漢軍抓獲的匈奴俘虜的供詞),匈奴大軍正準備大舉進攻漢朝東北邊境 (即右北平一帶)。然而,漢武帝作出了一個出人意表的安排,只派韓安國、李廣守右北平,親信兼外戚衛青卻率領騎兵從雲中郡 (今內蒙古自治區托克托縣東北) 出發,向西進行迂迴閃擊戰,一路掃蕩至隴西郡 (今甘肅臨洮一帶),將活動在河套平原 (河南地) 的匈奴樓煩王、白羊王擊潰,斬首與俘虜其士兵數千人,獲其牛羊百餘萬。「河南之戰」大捷解除了匈奴長期對首都長安的直接軍事威脅,整個河套地區被收復,更是西漢建立以來所未有。
鄭威、周超<「河南地」與西漢前期西北疆域的形成>指出:
西漢前期,漢匈在西北地方的長期對峙,從地緣角度而言,本質是對「河南地」及其周邊區域的爭奪。
他們認為
秦人蒙恬奉命「西北斥逐匈奴」,將該區域納入中原王朝版圖;至漢武帝元朔二年 (前127年),衛青率軍出擊匈奴,收復「河南地」並將其正式納入漢朝疆域。西漢前期,漢王朝在「河南地」周邊設置雲中、隴西、北地、上郡等邊郡,構成了漢匈對峙的關鍵防線。
和蒙恬先取「河南地」,再「渡河」攻取「陽山」、「高闕」、「北假中」不同,衛青的軍事行動分為兩個階段:
首先掃清雲中郡至高闕間的匈奴勢力,隨後向南渡過「北河」收取「河南地」。這與蒙恬先收河南地、再渡河北進的順序相反,且兩階段時間間隔更短。
關於白羊王、樓煩王的由來,《史記・匈奴列傳》有以下一段:
冒頓上馬,令國中有後者斬,遂東襲擊東胡。東胡初輕冒頓,不為備。及冒頓以兵至,擊,大破滅東胡王,而虜其民人及畜產。既歸,西擊走月氏,南并樓煩、白羊河南王。
原來在今日中國鄂爾多斯高原與河套地區一帶,有兩個國家,一為白羊國,一為樓煩國。匈奴冒頓單于強大,兩國被擊敗,遂成為匈奴附屬國。漢武帝派衛青擊敗樓煩王、白羊王,等於削弱匈奴在河套地區的勢力,《漢書・武帝紀》記載「收河南地,置朔方、五原郡」。周振鶴認為此一表述最為完整。
「河南之戰」令衛青及其派系迅速崛起,《史記・衛將軍驃騎列傳》:
以三千八百戶封青為長平侯。青校尉蘇建有功,以千一百戶封建為平陵侯。使建筑朔方城。青校尉張次公有功,封為岸頭侯。
蘇建即後來蘇武的父親。又《史記・李將軍列傳》:
匈奴入殺遼西太守,敗韓將軍,後韓將軍徙右北平。於是天子乃召拜廣為右北平太守。廣即請霸陵尉與俱,至軍而斬之。
廣居右北平,匈奴聞之,號曰「漢之飛將軍」,避之數歲,不敢入右北平。
李廣雖為匈奴所忌憚,卻始終未獲漢武帝重用。
竊以為李廣習慣據城死守、結陣防禦,未能配合漢武帝心目中的大規模進攻,跟不上節奏。反而以衛青為代表的少壯派,不受傳統束縛,擅長在沙漠、草原利用騎兵軍團的優勢,進行長途奔襲。軍事思維及戰術型態的僵化,致使李廣後來只能淪為「牽制敵軍主力」的棋子,於東北戰線面對大量傷亡,竟無法參與消滅匈奴有生力量,建功立業。
漢武帝對匈奴主動出擊,不是全無代價與成本,《史記・平準書》:
及王恢設謀馬邑,匈奴絕和親,侵擾北邊,兵連而不解,天下苦其勞,而干戈日滋……興利之臣自此始也。
其後漢將歲以數萬騎出擊胡,及車騎將軍衛青取匈奴河南地,筑朔方……又興十萬餘人筑衛朔方,轉漕甚遼遠,自山東咸被其勞,費數十百巨萬,府庫益虛。
持續軍事行動需要軍費,將軍費轉嫁老百姓身上,於是有聚斂之臣被重用,人民飽受其苦。
另外,從太行山以東遷移十萬餘人至朔方郡進行屯田開墾,修築防禦工事,這些人是需要供養的,而朔方地處偏遠,物資和糧食運輸耗費大量人力物力,結果導致漢朝府庫空虛,經濟出現嚴重問題。