高祖五年,刘邦封他的开国功臣韩王信为韩王,建都阳翟(今河南禹县)。后来,刘邦打算将他迁到今山西太原一带,都晋阳(今山西太原)。韩王信则要求再向北移,定都马邑(今山西朔县)。
高祖六年,冒顿开始屡屡攻击迁都马邑的韩王信,韩王信没有力量抵抗匈奴的强大兵力,便向匈奴求和。
刘邦知道这件事后,严厉谴责了韩王信。韩王信害怕刘邦惩罚他,干脆投降了匈奴。匈奴有了韩王信的帮助,大举南犯,一直攻下太原,并继续向南进攻。
高祖七年,刘邦亲率大军三十二万北征匈奴。当时,正是冬天,天寒地冻,虽然赶不上二战时期德军在莫斯科城外挨冻的惨状,但是,汉军士兵们有百分之二三十的人冻掉了指头。
冒顿假装败走,引诱汉兵。
于是,刘邦亲率大军追击。冒顿将他的精兵隐蔽起来,露面的都是老弱士卒和瘦弱的牲畜。
刘邦被冒顿的假象迷惑,紧追不舍。率先到达平城(今山西大同东北),但是,他的大队步兵在后面尚未到达。冒顿突然将他的四十万精兵全部放出来,把高祖刘邦团团包围在白登(今山西大同东北),整整七天七夜无法突围(冒顿纵精兵四十万骑,围高帝于白登七日),后续到来的汉军也无法救援被围的刘邦。冒顿的骑兵十分强壮,白登四面是四种颜色马匹组成的军阵。
危急万分之时,陈平向高祖刘邦建议:游说匈奴单于的阏氏。但是,《史记》、《汉书》等正史没有具体记载陈平这条奇计的具体内容是什么。
据《史记集解》所引桓谭《新论》,陈平的奇计是利用匈奴阏氏的妒忌心,派使者向阏氏送上厚礼(高帝乃使使间厚遗阏氏——《史记·匈奴列传》),说被围的刘邦已经派人到国中选送美女献给单于。一旦绝色美女献上来,单于一定会非常宠爱她。这样,您就会被疏远了。不如趁现在汉朝的美女还未到达,赶快劝单于放刘邦走。刘邦一走,也不会再向单于进献美女了,您的地位也就能够长期得到保持了。匈奴阏氏一听,非常有道理,立即劝冒顿单于说:你就是得到了汉朝的土地,咱们能长期驻防吗?何况汉王也有神灵保佑,希望你能好好想一想。
冒顿这次出兵,原先和韩王信的部下商定好合击汉军,但是,韩王信的部下王黄、赵利的兵不来。冒顿怀疑他们和刘邦之间有阴谋。于是,听从了阏氏的话,在包围圈中让出一条通道,放刘邦一马。刘邦让士兵们个个把弓拉满,面向外,从匈奴让开的通道中缓缓撤出,与包围圈之外的汉军主力会合。
冒顿单于在刘邦撤走之后,也率兵撤离。