后来匈奴向北征服了浑庾、屈射、丁零、鬲昆、薪犁等国。于是匈奴的贵族和大臣都服气了,认为冒顿单于贤能。
当时汉朝刚刚平定中原,调韩王信到代郡,在马邑创建都城。匈奴大举围攻马邑,韩王信投降了匈奴。匈奴得到了韩王信,顺势带兵向南越过句注山,攻打太原,来到晋阳城下。
高帝亲自带兵前去讨伐匈奴。正赶上冬季天气十分寒冷,天降大雪,冻掉手指的士兵多达十分之二三,于是冒顿佯装战败逃跑,引诱汉朝的军队。
汉军追击冒顿,冒顿就把他的精锐部队隐藏起来,只显示他的老弱残兵,于是汉军全员出动,大多数是步兵,总计三十二万人,向北追击。
高帝率先赶到平城,步兵还没有完全抵达,冒顿派出四十万名精锐骑兵把高帝包围在白登山,七天时间里,汉军内外得不到救援和粮饷。
匈奴的骑兵部队,西方全是白马,东方全是青马,北方全是黑马,南方全是红马。
高帝于是派使者暗中送丰厚的礼物给匈奴阏氏,阏氏于是对冒顿说:“两个君主不应该相互围困。现在即使得到汉朝的土地,而单于最终也不能居住在那里。况且汉王也有神灵保佑,单于考虑一下这件事。”
冒顿和韩王信的部将王黄、赵利约定出兵时间,然而王黄、赵利的军队没有按时赶来,怀疑他们和汉朝有阴谋,也就采纳了阏氏的建议,于是解除了包围圈的一角。
这时高帝命令士兵都拉满弓将箭头对外,从打开的一角直冲出去,终于和大军会合了,同时冒顿也带兵撤退了。
汉朝也领兵回来,派刘敬去缔结和亲的盟约。
此后韩王信担任匈奴的将军,与赵利、王黄等人多次违背盟约,侵犯劫掠代郡、云中郡。
没过多久,陈豨也反叛了,又与韩信共同谋划进攻代郡。
汉朝派樊哙去讨伐他们,重新攻占了代、雁门、云中等郡县,军队没有出边塞。
这时匈奴因为有很多汉朝过去的降将,所以冒顿经常来往于代地侵扰劫掠。
于是汉朝担心这件事,高帝就派刘敬将封为公主的皇族女子献给匈奴作单于阏氏,每年送给匈奴一定数量的棉絮、丝帛、酒水、粮食等,约定为兄弟之国来和亲,冒顿于是暂时停止了侵扰。
后来燕王卢绾又反叛了,率领他的同党几千人投降了匈奴,往来于上谷以东地区侵扰。