从公元前133年马邑之围至前119年,汉武帝派兵和匈奴进行了多次作战。其中决定性的战役有三次。
元朔二年(公元前127年),汉武帝派将领卫青率军出云中收复河套地区,扫除匈奴进犯的军事据点。卫青采取迂回进攻的方法,从后路包抄,一举赶走匈奴,解除了长安的威胁。于是,汉武帝在那里设朔方郡、五原郡,并移民10万在此开发防守,又重新修了秦代的旧长城,派兵驻守。
元狩二年(公元前121年),汉武帝派霍去病出陇西,越过焉支山西进,汉军入匈奴境千余里,攻克焉支、祁连二山,杀掠匈奴4万余人。同年,匈奴贵族内部分裂,浑邪王率四万人降汉。这次战役后,汉在这里置武威、酒泉、张掖、敦煌四郡,历史上称“河西四郡”,从此自河西走廊至罗布泊一带无匈奴,匈奴与西羌的联系断绝,从而打通了汉通西域的道路。
汉武帝时期,国家的综合实力能够支持汉武帝对匈奴发动战争。汉朝控制河套地区,等于是掌握了最主要的战略资源-战马。当时有卫青霍去病等采用的游击战法刚好克制匈奴。但是长期的战争也使空前强大的汉朝国力日下。