刘邦率轻骑先到达平城(今山西省大同市),此时汉朝大军还未完全赶到。冒顿单于在白登山设下埋伏。刘邦带领兵马一进入包围圈,冒顿单于马上指挥四十万匈奴大军,将刘邦的兵马围困在白登山,使汉军内无粮草、外无援兵,不能相救。刘邦发现被包围后,组织突围,经过几次激烈战斗,也没有突围出去。之后,冒顿率领骑兵从四面进行围攻:匈奴骑兵西面的是清一色白马,东面是清一色青马,北面是清一色黑马,南面是清一色红马,企图将汉军冲散。结果,双方损失很大,一直相持不下。匈奴围困了七天七夜,也没有占领白登。
汉军在被围了七天后,粮食也快吃完了,饥寒交迫,危在旦夕。陈平看到冒顿单于对新得的阏氏(单于的妻妾)十分宠爱,朝夕不离。这次在山下扎营,经常和阏氏一起骑马出出进进,浅笑低语,情深意笃。于是陈平向刘邦献计,想从阏氏身上打主意。刘邦采用陈平之计,派遣使臣,乘雾下山向阏氏献上了许多的金银珠宝。
于是阏氏就对冒顿单于说:“军中得到消息说,汉朝有几十万大军前来救援,只怕明天就会赶到了。”单于问:“有这样的事?”阏氏回答说:“汉、匈两主不应该互相逼迫得太厉害,现在汉朝皇帝被困在山上,汉人怎么肯就此罢休?自然会拼命相救的。就算你打败了他们,夺取了他们的城地,也可能会因水土不服,无法长住。万一灭不了汉帝,等救兵一到,内外夹攻,那样我们就不能共享安乐了。”冒顿单于问:“怎么办呢?”阏氏说:“汉帝被围了七天,军中没有什么慌乱,想必是有神灵在相助,虽有危险但最终会平安无事的。你又何必违背天意?”冒顿单于本来与韩王信的部下王黄和赵利约定了会师的日期,但他们的军队没有按时前来,冒顿单于怀疑他们同汉军有勾结,就采纳了阏氏的建议,打开包围圈的一角,让汉军撤出。当天正值天气出现大雾,汉军拉满弓安上箭,从已经解除包围的一角慢慢地走出,才得以脱险。