匈奴和亲后,北部边境虽大体上安定了一个时期,但小的摩擦一直未断,有些忧国忧民的霍去病则发出“匈奴不灭,何以为家”的政论。汉武帝刘彻继位后决心荡平北部边境,在漠南打了胜仗。元朔(汉武帝年号)六年(前123年),匈奴伊稚邪单于往漠北撤兵,妄图诱汉军深入漠北而一举歼灭,不料汉武帝转攻河西,匈奴企图落空。恼羞成怒的伊稚邪于公元前120年春派数万骑兵,分别从北平、定襄两郡入侵,企图激怒汉武帝以达其诱汉军深入加以歼灭之目的。
而汉武帝取得西线胜利后,决意加强对北线进攻。他于前119年下诏实行币制改革和盐铁专卖,以筹集北伐所需要的财力、物力,同时对北伐作了周密部署。派大将军卫青统率骑兵五万出定襄寻找匈奴主力作战;派骠骑将军霍去病统率五万骑兵出代郡寻找匈奴左贤王决战。匈奴单于得知汉军北进后,将全部家属和人畜物资往更远的北方转移,而将精兵部署在漠北一带,准备全歼汉军。
卫青从定襄出塞不久,从俘虏口中得知匈奴单于驻、牧地点,立刻命令前将军李广与右将军赵食其合兵由东路攻击单于军的左侧,自己则率主力直奔单于军的主力从正面迎敌。当他率部到达漠北后,已临近日落,突然风沙大起。卫青乘势下令将单于的阵营包围起来,匈奴军溃败,次日早晨汉军大获全胜。卫青又乘胜攻入颜山赵信城,缴获大批粮食和物资。驻留一日,放火烧毁赵信城后回师南下。
而霍去病凭借兵强马壮的优势,从代郡出发,不带给养轻装前进,到达兴城与北平太守、渔阳太守会师后,在沙漠中长途北进两千多里,对匈奴左贤王发起猛烈进攻。左贤王自知不是霍的对手,率亲信北逃。霍去病一直追到狼居胥山,俘获屯头王、韩王、将军、相国八十余人和匈奴军官兵七万多人。
两股汉军均取得了艰苦的漠北之战的胜利,共歼灭匈奴军九万余人,使其一时无力渡漠南下。为了彻底消除匈奴的威胁,汉武帝又先后两次发动河西战役。河西地区即今天的河西走廊,在黄河以西,祁连山、合黎山之间,地势低平,是中原通向西方的黄金通道。原来这里是月氏人居住地,后来被匈奴侵占,成了匈奴浑邪王、休屠王的领地。
汉武帝想与月氏国及西域各国沟通联系,于公元前121年春天和夏天两次派霍去病率骑兵赴河西征伐。第一次穿过匈奴王国,转战六日,深入一千多里,在皋兰山(今兰州黄河西)与匈奴军激战,斩杀了抵兰王、卢侯王,活捉了浑邪王儿子、相国、都尉等,歼敌万人,缴获很多,第二次从甘肃环县出发,直趋祁连山,把匈奴军打得大败,接受单桓王、酋涂王及相国、都尉等两千五百人投降,俘虏了王母、单于阏氏、王子、相国、都尉等一百二十人,歼灭匈奴官兵三万余人。