上自将击韩王信,破其军于铜鞮,斩其将王喜。信亡走匈奴。白土人曼丘臣、王黄等立赵苗裔赵利为王,复收信败散兵,与信及匈奴谋攻汉。匈奴使左、右贤王将万余骑,与王黄等屯广武以南,至晋阳,汉兵击之,匈奴辄败走,已复屯聚,汉兵乘胜追之。会天大寒,雨雪,士卒堕指者什二三。
上居晋阳,闻冒顿居代谷,欲击之。使人觇匈奴,冒顿匿其壮士、肥牛马,但见老弱及羸畜。使者十辈来,皆言匈奴可击。上复使刘敬往使匈奴,未还,汉悉兵三十二万北逐之,逾句注。刘敬还,报曰:“两国相击,此宜夸矜见所长。今臣往,徒见羸瘠、老弱,此必欲见短,伏奇兵以争利。愚以为匈奴不可击也。”是时,汉兵已业行,上怒,骂刘敬曰:“齐虏以口舌得官,今乃妄言沮吾军!”械系敬广武。
帝先至平城,兵未尽到,冒顿纵精兵四十万骑,围帝于白登七日。汉兵中外不得相救饷。帝用陈平秘计,使使间厚遗阏氏。阏氏谓冒顿曰:“两主不相困。今得汉地,而单于终非能居之也。且汉主亦有神灵,单于察之。”冒顿与王黄、赵利期,而黄、利兵不来,疑其与汉有谋,乃解围之一角。会天大雾,汉使人往来,匈奴不觉。陈平请令强弩傅两矢,外乡,从解角直出。帝出围,欲驱,太仆滕公固徐行。至平城,汉大军亦到,胡骑遂解去。汉亦罢兵归,令樊哙止定代地。
上至广武,赦刘敬,曰:“吾不用公言,以困平城。吾皆已斩前使十辈矣。”乃封敬二千户为关内侯,号为建信侯。帝南过曲逆,曰:“壮哉县!吾行天下,独见洛阳与是耳。”乃更封陈平为曲逆侯,尽食之。平从帝征伐,凡六出奇计,辄益封邑焉。