第一阶段
从汉高帝七年(前200年)至汉武帝元年(前134年)。
这一阶段采取了妥协的和亲政策。汉文帝时,“与匈奴和亲,匈奴背约入盗,然令边备守,不发兵深入,恶烦苦百姓”。据史料记载,前后一共送去了10位宗室之女,即冒顿单于于前200年、前192年、前176年所收到的3位公主,老上单于于前174年、前162年所收到的2位公主,军臣单于于前160年、前156年、前155年、前152年、前140年所收到的5位公主。
第二阶段
元狩二年(前121年),霍去病出陇西,歼灭浑邪王的部队,越过焉支山一千余里,取得了河西之战的胜利,
获得陇西,设置凉州四郡。
匈奴人哀叹:“亡我祁连山,使我六畜不繁息;失我胭脂山,使我妇女无颜色。”匈奴单于恨浑邪王损兵折将,浑邪王和休屠王害怕,便投降汉朝。
元狩四年(前119年),卫青出塞千余里,与匈奴单于军相遇,交战,匈奴不利,单于引数百骑突围而去。卫青追至赵信城,不得单于,乃烧城中余栗而还。自此之后,由于种种原因卫青不复出征匈奴。霍去病率军北进两千余里,越离侯山,渡弓闾河,与匈奴左贤王部接战,歼敌七万人,俘虏匈奴屯头王、韩王等3人及将军、相国、当户、都尉等83人,乘胜追杀至狼居胥山(今蒙古人民共和国北部的肯特山),在狼居胥山举行了祭天封礼,一直打到翰海(今俄罗斯贝加尔湖),方才回兵。史称“封狼居胥山,禅于姑衍,登临翰海,执卤(虏)获丑七万有四百四十三级”。
元狩六年(前117年),霍去病病逝,年仅二十三岁,一生战无不胜,凡六击匈奴,开河西酒泉之地,斩俘敌12万余人,收降4万余人。其后十一年,卫青卒,一生七击匈奴,一与单于战,收河南地,斩捕首虏五万余级。两位抗匈名将对匈奴军事力量造成毁灭性的打击,使汉朝百余年的匈奴边患基本得到解决。
征和三年(前90年),李广利受命出兵五原伐匈奴的前夕,丞相刘屈牦与李广利合谋立昌邑王刘髆为太子。史载:“征和三年,贰师将军李广利将兵出击匈奴。丞相为祖道,送至渭桥,与广利辞决。广利曰:‘愿君侯早请昌邑王为太子。如立为帝,君侯尚(长)何忧乎?’”后刘屈牦被腰斩,李广利妻被下狱。此时李广利正在燕然山乘胜追击,听到消息,恐遭祸,欲再击匈奴,取得胜利,以期汉武帝饶其不死。但之后兵败,李广利只得投降匈奴,士卒死亡数万人,在深入大漠一千余里的境内,没有足够的给养,很难生存。消息传来,汉武帝中止了与匈奴的战争,不复出兵。
《资治通鉴》卷二十一,对于汉武帝使李广利对匈奴用兵一事,提出批判:“武帝欲侯宠姬李氏,而使广利将兵伐宛,其意以为非有功不侯,不欲负高帝之约也。夫军旅大事,国之安危、民之死生系焉。苟为不择贤愚而授之,欲徼幸咫尺之功,藉以为名而私其所爱,不若无功而侯之为愈也。然则武帝有见于封国,无见于置将;谓之能守先帝之约,臣曰过矣。”
汉武帝晚年悔过,下罪已诏称:“朕即位以来,所为狂悖,使天下愁苦,不可追悔。自今事有伤害百姓,糜费天下者,悉罢之。”此时汉朝大虚,“海内虚耗,户口减半”,汉武帝去世那年,“匈奴入朔方,杀略吏民”。