汉击匈奴,功劳最大的将领是卫青、霍去病,所以“匈奴列传”后司马迁为二人作传。匈奴虽然受到重创,但仍然有与汉朝廷抗衡的能力。后人关于汉武帝的功过争议颇多,包括讨伐匈奴一事。唐人评价攻匈奴之事说:秦起长城,竟海为关。荼毒生民,万里朱殷。汉击匈奴,虽得阴山,枕骸遍野,功不补患。又说:苟能治侵凌,岂在多杀伤。
卫青出身外戚,他的成就来源于此,最后卫家的失败也根源于此。卫青是河东平阳人,其父郑季为县中小吏,供职于平阳侯曹寿家,郑季与平阳侯的小妾卫媪通奸,生了卫青。卫青有同母哥哥卫长子,又有同母姐姐卫子夫,卫子夫在平阳公主家得到汉武帝的宠幸,所以就冒姓卫。卫青字仲卿,他的哥哥卫长子改字长君。他们的母亲名叫卫媪。卫媪的大女儿叫卫孺,二女儿叫卫少儿,三女儿就是卫子夫。后来卫子夫的弟弟卫步和卫广都是冒姓卫的。
卫青年在平阳侯家作仆人,但很早就归于父亲郑季家里,父亲让他牧羊。郑季前妻生的儿子们都把卫青看作奴仆,而不把他当兄弟。卫青曾跟别人到甘泉宫的居室,有个脖子上戴着刑具的犯人给卫青相面说,你是贵人的面相,以后能当官封侯。卫青笑着说,我是奴仆之子,能不挨打受骂就心满意足了,哪里会有封侯的事呢!
卫青长大后,在平阳侯家当骑兵,时常作为仪卫跟从平阳公主。汉武帝建元二年春,卫青的姐姐卫子夫入宫,大受武帝宠幸。当时武帝已有皇后,即“金屋藏娇”的阿娇,皇后姓陈,是汉武帝姑姑堂邑大长公主刘嫖的女儿,无子而善妒。大长公主听说卫子夫受到武帝宠幸,且有了身孕,恨妒得不得了,就派人去抓卫青泄愤。
当时卫青已在建章宫供职,大长公主派人抓了卫青想杀掉他。卫青的朋友骑郎公孙敖和一些壮士把卫青夺了回来,卫青因此侥幸未死。武帝听说这件事后,就召卫青封其为建章监、侍中。卫青的同母兄弟们也都随之显贵,汉武帝给他们的赏赐,数日之间即有千金之多。卫孺嫁给太仆公孙贺为妻。卫少儿原来同陈掌(陈平曾孙)私通,汉武帝也使陈掌显贵。公孙敖因救卫青有功,也更加显贵。卫子夫为夫人,卫青为大中大夫,卫家骤然显赫。
元光五年,以卫青为车骑将军攻打匈奴,兵出上谷;太仆公孙贺为轻车将军,出云中;大中大夫公孙敖为骑将军,出代郡;卫尉李广为骁骑将军,出雁门;每军各率领骑兵一万。卫青进兵至茏城,斩俘匈奴数百人。而骑将军公孙敖损失骑兵七千,卫尉李广被匈奴所俘,乘匈奴不备逃回。公孙敖和李广按罪当斩,赎为庶人。公孙贺也无功而返。
元朔元年春,卫子夫为武帝生子,即卫太子刘据,卫子夫被立为皇后。这年秋天,汉武帝再以卫青为车骑将军,出雁门,率骑兵三万攻打匈奴,斩杀匈奴数千人。第二年,匈奴入侵汉境,杀辽西太守,掳掠渔阳两千余人,败汉将军韩安国。汉朝廷命将军李息进攻匈奴,出代郡;又命车骑将军卫青出云中以西至高阙。此役汉朝廷攻取了匈奴河套以南地区,直到陇西,俘敌数千,缴获牲畜数十万,败走匈奴白羊王和楼烦王。
汉朝廷在河套以南地区改设朔方郡,以三千八百户封卫青为长平侯。卫青的校尉苏建也因军功,以一千一百户封为平陵侯,并命苏建修筑朔方城。卫青的校尉张次公也因军功被封为岸头侯。汉武帝说,匈奴逆天理,乱人伦,凌长虐老,以盗窃为事,欺凌北方蛮夷诸国,又以武力屡次为害汉朝边境,所以朝廷才调动军队,派遣将领,以讨伐匈奴的罪恶。
《诗经》云:薄伐猃狁,至于太原。又说:出车彭彭,城彼朔方。车骑将军卫青度西河至高阙,斩首二千三百级,缴获敌军的战车、辎重和牲畜,因功已封为列侯。他又西向平定河套以南地区,循榆谿旧塞,度梓领,架桥北河,讨蒲泥、破符离,捕斩匈奴精锐士卒三千七十一级,俘获敌人马牛羊百余万,全甲兵而还,益封卫青三千户。第二年,匈奴入侵边境,杀代郡太守共友,掳掠雁门郡百姓千余人。又过了一年,匈奴再次大举入侵代郡、定襄、上郡,杀掠汉朝边境百姓数千人。