西漢初年，匈奴在冒頓單于領導下攻破東胡、擊敗月氏，國力壯盛；劉邦則甫統一中原，強弱不敵，而為冒頓單于圍於平城白登（前200年）後在平城下擊退匈奴，西漢初期遂對匈奴採行和親政策，與民休養生息。

漢武帝時代，西漢反守為攻，主動攻擊匈奴，漢匈雙方強弱平勢；在漢武帝的武力及外交雙線戰略調配及運用下，不僅匈奴本部遭受西漢嚴重打擊而暂时性的退守漠北，其在西域之勢力亦在60年后被西漢取代。

西元前68至前53年，匈奴內部战争，五單于爭立；至西元前51年，隨著呼韓邪單于向汉借兵，匈奴首度和短暂性的分為南北兩部，北匈奴郅支單于遂西遷，至西元前36年，北匈奴郅支單于的3000余部為陳湯、甘延壽40,000人马所滅。

漢高祖時期

平城之戰
漢高祖六年（西元前201年）秋，匈奴發兵圍韓王信於馬邑（今山西朔縣），韓王信恐不敵，遂數度遣使通匈奴以謀和，同時亦求救於漢朝，漢朝一方面發兵解其圍，一方面譴責其數使匈奴謀和之舉，韓王信益懼，恐見誅於漢高祖，乃欲以馬邑降匈奴。

漢高祖遂於七年（西元前200年），親自將兵三十萬，往擊之，破韓王信軍於銅鞮（今山西沁縣西南），此時冒頓亦以輕騎馳助韓王信，兩軍甫戰，韓王信及匈奴輕騎皆敗，其將王喜且為漢高祖所殺，於是韓王信逃奔匈奴，而冒頓單于乃引兵過句注（山名，地當今雁門西三十里），攻太原郡，至晉陽邊（故城即今山西太原縣治）；當韓王信敗亡時，有白土人曼丘臣、王黃等擁立故趙國苗裔趙利為趙王，收聚韓王信之散兵，並與匈奴合謀攻漢。

刘邦率骑兵先到达平城（今山西省大同市以北），于是命令周勃攻打东南的楼烦三座城池后再与主力会合，作为后援，后来正如刘邦所料，也是周勃给刘邦解围。 周勃在石之战后，没有与刘邦一道继续追击刘邦而是“还攻楼烦三城”，也没有周勃被围的记载，很显然，《韩信卢绾列传》提到的“汉救兵”就是周勃的军队。 《匈奴列传》提到“高帝先至平城，步兵未尽到”，这里的步兵就是指周勃带领的步兵，被围 的只有刘邦与夏侯婴的车骑兵，还有灌婴的骑兵，夏侯婴传与灌婴传都提到了“为胡所围 ”： 《樊郦滕灌列传》夏侯婴：因从击韩信军胡骑晋阳旁，大破之。追北至平城，为胡所围，七日不得通。高帝使使厚遗阏氏，冒顿开围一角。高帝出欲驰，婴固徐行，弩皆持满外向，卒得脱。益食婴细阳千户。复以太仆从击胡骑句注北，大破之。以太仆击胡骑平城南，三陷陈，功为多，赐所夺邑五百户。 《樊郦滕灌列传》灌婴：从击韩信胡骑晋阳下，所将卒斩胡白题将一人。受诏并将燕、赵、齐、梁、楚车骑，击破胡骑于石。至平城，为胡所围，从还军东垣。根据夏侯婴传，汉军解围后，与匈奴还有战斗“复以太仆从击胡骑句注北，大破之。以太仆击胡骑平城南，三陷陈，功为多”可见最后汉军应是击败了匈奴

此後，劉邦為了全力對付內部地方割据政权，對匈奴採取了「和親」政策。把宗室女子嫁給匈奴首領，每年送去一定數量的黃金、絹、絮，米、酒，允許汉朝和匈奴双方人民往來買賣。

漢武帝時期

馬邑之戰

起因
就在汉武帝元光二年（前133年），雁門郡（山西省右玉縣）馬邑縣（山西省朔州市）土豪聶壹，透過大行令（外籍官民接待總監）王恢，上書汉武帝說：「匈奴單于剛跟我們和解，正在和平相處的狀況，我們可以用重大利益誘惑他，使他們深入中國國境，伏兵攻擊，給他們一個決定性的致命創傷。」

所以當年夏季六月，武帝就命令御史大夫（最高監察長）韓安國當護軍將軍、命太中大夫（中級國務官）李息當材官將軍、命衛尉李廣當驍騎將軍、命太僕公孫賀當輕車將軍、命大行令王恢當將屯將軍，率領步兵、騎兵、戰車部隊三十餘萬人，在馬邑（山西省州市）附近山谷中埋伏，只等匈奴單于進入馬邑，馬上就要將他們團團圍住。

然後，秘密派聶壹當間諜，假裝逃亡匈奴，向單于報告，說：「我可以殺掉馬邑縣長（令）跟主任秘書（丞），舉城投降，城內的人民和財產，你們都可以全部擄掠回來！」

單于聽了之後大為興奮，立刻准许他的建議。聶壹回馬邑後，處決兩個死囚，把人頭懸掛城上，告訴匈奴单于派來的使節，說：「我已擊斬馬邑縣長和主任秘書，你們要快來。」

過程

軍臣單于收到消息後非常高興，立刻率領十萬騎兵，強行穿過漢長城，直撲武州塞（山西省左雲縣。與馬邑航空距離七十公里），將到馬邑一百餘華里（一汉里等于今415米），看到遍地牛羊，卻看不到人煙，引起軍臣單于懷疑，於是攻擊附近亭堡，生擒該亭堡亭尉，就要處斬。那位亭尉因害怕砍头而据实报告，並指出漢軍在哪些地方埋伏。

單于一聽，嚇得魂飛天外，下令迅速撤退。等到出了長城，才喘過氣後來封那位小官當「天王」。

軍臣单于出塞後，漢朝的埋伏大軍才得到消息，趕到長城。計算時間，已不可能追及，只好班師。王恢本來的任務是從代郡（河北省蔚縣）攔擊匈奴兵團輜重。可是情報說軍臣單于大軍已經撤回。反客為主的十萬鐵騎兵團，不容易對付，王恢不敢貿然出兵。

結果

自此之後，匈奴單于拒絕和解，不斷侵扰边郡关卡，往往深入边郡，次數不可勝計。但是，仍然貪圖邊關的自由交易市場（關市），喜愛中原財物。而西漢朝廷也不封閉邊關市場，用以滿足匈奴汗國的需要。

河南之役
元光六年（前129年）公孫賀出雲中郡（今內蒙古托克托東北）由於戰情偵查不悉未遇匈奴軍，無所獲；公孫敖出代郡（今河北蔚縣西南），被匈奴打敗，損失七千人；名將李廣出雁門（今山西右玉南），由於飛將軍李广的战斗力和指挥才能,匈奴伊稚斜單于集中三支主力騎兵合圍李廣所部,李廣部寡不敵眾全軍覆沒後即被匈奴生俘，在押運途中憑機智才隻身逃回。

唯有衛青一路，率兵出上谷（今河北懷來），長驅直入直抵龍城（今内蒙古赤峰附近），斬首俘敵七百，後封關內侯。

雁門之戰
元朔元年（前一二八年）秋，匈奴兩萬騎兵攻擊遼陽郡、漁陽郡、雁門郡一帶。殺遼西太守並擄去兩千餘人。又擊敗漁陽郡太守軍千餘人，圍攻韓安國；漢軍幾乎戰死，還好援軍及時趕到，漁陽才未被攻破。同時，匈奴本部進攻雁門，擊敗雁門郡太守，斬殺千餘人。

武帝派衛青率領三萬騎兵出雁門郡(治善無，今山西右玉境)，李息出代郡聲援漁陽，一起反擊匈奴。

衛青斬獲數千，匈奴敗走。

河南之戰
元朔二年（前一二七年）匈奴騎兵又侵入上谷、漁陽，殺掠吏民數千人。漢武帝決定用全力收復河南地（河套平原），以消除匈奴的威脅。西漢的河南地，即今黃河河套地區，這裡水草豐美，宜於農牧，其地又有直道与西漢首都長安相连，無論在經濟和軍事上，都佔有十分重要的地位。因此歷來是兵家必爭之地。

衛青與將軍李息等領兵四萬北出雲中(今呼和浩特西南)，沿黃河西進，採用“迂迴側擊”的戰術，西繞到匈奴軍的後方，迅速攻佔石水門和高闕(今內蒙古臨河西北)，切斷了駐守河南地的匈奴白羊王、樓煩王同單于王廷的聯繫。再折向南，圍殲匈奴白羊王、樓煩王兩部。

匈奴白羊王、樓煩王見勢不好，倉惶率兵逃走。漢軍殲敵數千人，奪取牲畜一百多萬頭，完全控制了河套地區，取得河南地(今河套南伊克昭盟一帶),開闢其後出擊匈奴單于庭的基地，受封長平侯食邑3800戶。

朔方之役
元朔二年（前127年）冬军臣單于死，伊稚斜打敗了王位合法繼承人、軍臣單于的兒子於單，篡夺了王位。後來於單向漢朝投降，被封為陟安侯，不过在數月之後病逝。

元朔三年（西元前126年）夏，伊稚斜單于遣數萬騎侵代郡，斬代郡太守及其部下千餘人。秋天，又攻雁門郡，殺千餘人揚長而去。

元朔四年（前126年）夏天更大舉進犯，各以三萬騎攻代郡，定襄郡（綏遠省和林格爾縣以南）及上郡（陝西省綏德縣東南五十里）；右賢王欲奪回河南地亦進攻朔方郡。

元朔五年（前125年）春天，漢朝军队大舉反擊，大行李息、岸頭侯張次公出右北平郡，攻匈奴之左部做為牽制；衛青率領騎兵3萬出朔方、高闕。下轄衛尉蘇建為游擊將軍，左內史李沮為強弩將軍，太僕公孫賀為騎將軍，代相李蔡為輕車將軍

衛青得悉右賢王不備，於是秘密自朔方渡河，至五原郡。又於夜間潛軍出高闕六、七百里，急夜襲右賢王。

當時右賢王正醉臥幕中，在驚恐中與愛妾一人及親騎數百緊急突圍而去。衛青擄獲裨王十餘人、男女共1.5萬人及生畜數十萬。

漢武帝接到戰報，喜出望外，派特使捧著印信，到軍中拜衛青爲大將軍，加封食邑8700戶，所有將領歸他指揮。衛青的三個兒子都還在繈褓之中，也被漢武帝封爲列侯。衛青非常謙虛，堅決推辭於是漢武帝改封賞了隨衛青作戰的公孫敖、韓說、公孫賀、李蔡、李朔、趙不虞、公孫戎奴、李沮、李息、豆如意等人。

漠南大戰
虽然經過幾次戰役，但匈奴实力并未受损多少，依然猖撅。入代地，攻雁門，劫掠定襄（今內蒙古和林格爾）、上郡（今陝西綏德縣東南）。

元朔六年（西元前前123年）二月，漢武帝又命衛青攻打匈奴。公孫敖爲中將軍，公孫賀爲左將軍，趙信爲前將軍，蘇建爲右將軍，李廣爲後將軍，李沮爲強弩將軍，分領六路大軍，統歸大將軍衛青指揮，從定襄出發，北進數百里。春、夏兩次率六將軍、十余萬騎出定襄(今和林格爾西北)擊漠南單于大本營，殲萬餘人。与之前的朔方战役加起来汉军共损失十余万人。

漢亡二將軍軍：右將軍蘇建血戰匈奴一日而兵盡，獨自一人逃回。前將軍翕侯趙信降匈奴(趙信者，故胡小王，降漢，漢封為翕侯)。

霍去病受詔與壯士，為驃姚校尉，帶著800精銳脫離大隊，獨立跑出很遠，殺敵兩千余人。霍去病在此戰初露鋒芒，斬補首虜過當，共2028，及相國、當戶、斬單于大父行籍若侯產，生捕季父羅姑比，功勞在全軍數第一，獲封冠軍侯。

河西之戰
元狩二年（前121年）春、夏，漢武帝任命霍去病為驃騎將軍，發動了兩次對匈奴的河西戰役，大勝而回。

春天的作戰中霍去病率一萬驃騎，六天中轉戰河西走廊五国，越過焉支山一千多里後給匈奴右臂以重創，殲敵近九千人，获取匈奴祭天金人。

夏天的戰役成果更大，在與共同出擊，作為与霍去病的另外一支夾擊部隊的公孫敖与霍去病失去聯繫的情況下，霍去病孤軍深入，到達祁連山，殺敵三萬餘，讓匈奴的實力受到一次非常大的打擊。

漠北大戰
元狩四年（前119年）春，命令衛青、霍去病各率5萬精銳騎兵出定襄奔襲匈奴。

攻占單于庭，追至掣顏山（今蒙古杭愛山南面支脈）趙信城，燒匈奴積粟而還。

两军共斬獲近九萬人，給匈奴以沉重打擊

浚稽山之役
太和元年（公元前104年），匈奴左大都尉欲降漢朝。

武帝令趙破奴率二萬騎出朔方2000里（一汉里=415米），欲至浚稽山(今蒙古國圖音河之南)接應。

左大都尉事洩被殺，趙破奴撤軍途中不幸被匈奴大军团团包围，全軍覆沒。

汉攻大宛之戰

酒泉之役
天漢二年(公元前99年)五月，貳師將軍李廣利率3萬騎出酒泉(郡治祿福，今甘肅酒泉市)，進擊右賢王於天山(今新疆天山)。

初戰獲勝，撤軍途中，不幸遭匈奴大軍包圍，乏食數日，死傷十分之六、七，突圍返回，李陵在浚稽山力战被俘。

餘吾水之役
天漢四年（前97年），李廣利率騎兵六萬、步兵七萬出朔方擊匈奴；強弩將軍路博德率萬餘騎出居延，協同李廣利作戰；遊擊将军韓說率步兵三萬，因杆將軍公孫敖率騎兵萬餘、步兵三萬分別出五原、雁門(郡治善無，今山西右玉縣城南)擊匈奴。

匈奴單于將輜重遠徙餘吾水(今蒙古土拉河)以北，亲率十萬騎迎戰李廣利於餘吾水南。

李廣利與單于交戰十餘日，未能取勝而返。其餘各路軍亦無功。

燕然山之役
征和三年(公元前90年)三月，李廣利率軍七萬出五原，御史大夫商丘成率軍二萬出西河(郡治平定，在今內蒙古東勝境)；重河侯馬通率四萬騎出酒泉。

匈奴單于知漢朝大軍至的消息，將輜重北徙至郅居水(今蒙古色楞格河)，自率主力南渡姑且水(今蒙古巴彥洪格爾省南部圖音河)以待漢軍。

李廣利出塞後，擊敗匈奴左大都尉衛律，乘勝追擊至郅居水，匈奴退走。李廣利以二萬騎渡郅居水，擊敗左賢王，殺左大將。

漢軍撤退時，單于知李廣利疲憊，以五萬騎围擊漢軍於燕然山(今蒙古杭愛山)，漢軍大敗，李廣利降匈奴(參見燕然山之戰)。馬通、商丘成兩路，亦未有斬獲。

燕然山之敗後，漢武帝在經濟困難，人民疲憊的情況下，停止了對匈奴用兵，並下轮台诏，采取一些“思富養民”的措施，發展生產，恢復國力。

漢宣帝時期

本始二年之役
漢宣帝劉詢時，西漢國力逐漸恢復，又開始對犯邊之匈奴進行反擊。

本始二年(前72年)，宣帝以祁連將軍田廣明等五將軍和校尉常惠監烏孫兵，六路擊匈奴。五將軍少有斬，唯常惠監烏孫兵擊破右谷蠡王庭，殲匈奴四萬餘。匈奴避戰遠遁，人畜死亡不計其數。

神爵二年(前60年)，匈奴日逐王降漢，內部爭鬥更甚；西漢朝設西域都護府。完全控制了西域。

甘露元年(前53年)，匈奴分裂為南北二部。呼韓邪單于率南匈奴附漢，郅支單于率匈奴西遷至康居(約在今巴爾喀什湖與咸海之間)東部築城而居。

漢元帝時期

建昭三年之役
建昭三年(前36年)，漢西域副校尉陳湯詔發屯田吏士和西域诸国兵四萬人分兩路郅支單于，滅北匈奴，從而結束西漢與匈奴的百年大戰。

漢和帝時期

燕然勒石

参考文献 

 班固：《漢書》，卷五十五·卫青霍去病传第二十五，中華書局出版，ISBN 7101003052 6
 范曄：《后汉书》，中華書局出版，ISBN 7101003060 7
 司馬遷：《史记》，卫将军骠骑列传第五十一，中華書局出版，ISBN 7101003044 5
 林幹：《匈奴通史》，人民出版社

外部連結
 後漢書卷八十九　南匈奴列傳　第七十九
 匈奴與薩滿教文化

汉匈战争
西汉列表
中国战役列表