白登之战
汉高帝七年(公元前200年),西汉与匈奴的战争中,匈奴冒顿单于以优势骑兵包围刘邦军于白登山(今山西阳高东南大白登镇。一说今大同市东北)的作战。
六年秋,汉将韩王信以马邑(今山西朔县)降匈奴,匈奴乘胜南下。七年十月,刘邦亲率大军北上,破韩王信于铜醒(今山西沁县南),击败匈奴和韩王信军于晋阳(今山西太原市西南古城营村)等地,转入追击。刘邦闻知匈奴冒顿单于居代谷(今山西代县北雁门山北),便派使者前往侦察。为诱汉军北进,冒顿单于汉使者到来时,将精锐士兵和肥壮牛马都隐藏起来,以老弱示于外。汉使先后0批皆言匈奴可击。刘邦低估匈奴实力,亲率大军32万越过句注山(今山西代县北之雁门山)北上。恰出使匈奴之郎中刘敬返回,认为匈奴是“伏奇兵以争利”(《汉书;刘敬传》),劝刘邦罢兵。刘邦不听劝阻,亲率部分兵力冒进至白登山,为匈奴40万精骑包围。汉军被围七天七夜,粮草将断,危旦夕。刘邦用陈平秘计,厚赂冒顿单于阏氏(匈奴单于妻之称号)。由于阏氏的劝说和相约配合作战的西汉降将王黄、赵利未如期至,单于疑其与汉有谋,故解围一角。当时天下大雾,刘邦令强弩加两矢对外掩护,率军由解围角逃出白登山,至平城,始与主力会师。刘邦令樊哙守代(郡治代县,今河北蔚县东北代王城),引军南归。匈奴亦撤军去。
马邑之战
汉元光二年(公元前133年),西汉与匈奴的战争中,汉武帝刘彻马邑(今山西朔县)设伏击匈奴未遂的军事行动。
元光二年,雁门(郡治善无,今山西右玉城南)马邑富豪聂翁壹通过王恢向汉武帝提出诱单于至马邑,予以伏击歼灭的建议。武帝召集群臣讨论,主张不一。武帝认为,经几十年休养生息和战争准备,时国力充实,军力强盛,反击匈奴的条件已经成熟,遂决定放弃和亲和战略防御,转入反击。令聂翁壹会见匈奴军臣单于,诡称可杀马邑县令,请匈奴前往取其子女、财物。返回后,斩一死刑囚犯悬其头干城上,假说为县令首级。军臣单于信以为真,遂亲率10万骑兵进塞。武帝发兵30万。以御史大夫韩安国为护军将军,卫尉李广为骁骑将军,太仆公孙贺为轻车将军,率军埋伏马邑附近山谷中,准备消灭匈奴主力;以大行王恢为将屯将军,太中大夫李息为材官将军,率3万人伏于代郡(郡治代县,今河北蔚县东北代王城),准备截击匈奴辎重。军臣单子进至距马邑百余里处,见牛羊遍野,无人看管,顿生怀疑,派兵夺诹汉亭塞。从俘获的汉雁门尉史口中得知汉重兵埋伏于马邑四周山中,遂急引兵退走。伏于代郡之王恢部,见匈奴兵多,未敢出击。
马邑伏击虽未成功,但却揭开了西汉反击匈奴作战的序幕。
河西之战
汉元狩二年(公元前121年),西汉与匈奴的战争中,汉对河西(今河西走廊及湟水流域)地区匈奴进行的两次纵深突袭作战。