经过汉初几十年来的休养生息,武帝在位初期国强民富。由于行之有效的国家马政,西汉边郡已养马数十万匹,组建起训练有素的强大骑兵部队,构成了对匈奴作战的军事基础。公元前133年,汉武帝调集30万兵力埋伏于马邑周边,欲一举歼灭匈奴主力。但如此大规模兵力集结,很难保密,匈奴单于得知汉武帝计划后,退兵出塞。
这次未实现的伏击开启了汉匈之间近百年的战争。马邑之谋固然展示出汉武帝的强烈进取心,但他毕其功于一役的好大喜功也暴露无遗。早在前138年,汉武帝的急于求成就初露端倪,他派张骞出使西域就为“欲事灭胡”。
汉武帝对匈奴用兵可分为三个时期:从马邑之谋到前119年的漠北决战,汉军频繁出击匈奴;前118-104年间的停战与政治和谈阶段,双方要么无战事,要么也是低烈度冲突;前103年之后武帝再度大规模出击。前129年的龙城之战,汉武帝派4万汉军分四路出征匈奴,然而其中三路或者无功而返,或者损兵折将,甚至全军覆没、主将被俘。龙城之战西汉军人一共死伤1.7万,只有卫青一路斩敌700,攻破匈奴人会盟祭天的龙城,汉武帝首战不利。
此后,在西汉对匈奴的进攻战中,逐渐形成一套“间接”攻敌的战略,由卫青和霍去病等优秀指挥官较好地贯彻执行。无论是卫青夺得并巩固河套地区的两次漠南之战,还是霍去病攻下河西走廊的两次河西之战,汉军一般有一路军队在非主攻方向发动佯攻,迷惑匈奴单于,令其难以支援,而主进攻方向也不是简单的硬碰硬正面攻击,多采用大范围迂回、长途奔袭、出乎意料的奇袭等发挥骑兵速度优势的战略战术。
然而往往几次胜战后,汉武帝就犯了好大喜功的毛病,企图用一场总决战彻底击败匈奴人。结果却往往是主力决战准备过程漫长、物资消耗大,保密不佳,匈奴也做好迎战准备,导致进攻的突然性丧失。
前123年的阴北之战,汉武帝派大将军卫青率6位将军领10万骑兵,一路大军穿越阴山东段,直接攻击匈奴单于,并没有其他方向军队的策应和佯攻。是役,汉军杀敌1.9万,然而也损失了3000多精锐骑兵,更导致前将军赵信兵败投降匈奴。因此虽然获胜,战后卫青并未得到加封。
前199年,汉武帝发动漠北决战,更是霍去病两次河西战役(前121年)取得辉煌战果之后的头脑发热。汉武帝倾全国之力,调集的战马加上“私负从马”共24万匹,数十万步兵运输物资粮草、保障后勤,卫青和霍去病分别统领5万骑兵,总兵力高达50万人。是役,匈奴损失9万多人员、大量战马和畜产。此战后,匈奴在漠南(大致范围是蒙古高原的戈壁荒漠以南)无法立足,向蒙古高原西北迁移。