汉朝刚刚建国的时候,把六国的一个旧贵族韩王信(这位韩王信不是汉初三杰的韩信,而是韩国的旧贵族韩王)封于代地,定都马邑。就在这个时候,匈奴人大举进攻代地,围攻马邑,韩王信就投降了匈奴。匈奴人乘势向南进攻太原郡,兵至晋阳城(也就是今天的太原)下。
此时正值天寒地冻的冬天,汉兵士卒冻得手指都断掉了。刘邦在晋阳城下和匈奴人形成了对峙,匈奴人装作逃跑,一路向北走。刘邦就率领少部分骑兵,从晋阳一路向北追。
匈奴人多骑兵,汉人都是步兵,匈奴人一向北跑,追赶的刘邦军队就脱节了,除了少数骑兵能跟上,大部分的步兵都被落在了后面。这一追就追到了平城(今山西省大同市),突然匈奴人掉转马头,将率先到达平城之下的这些骑兵团团围住,把刘邦围在了白登山上。当冒顿单于纵30万骑兵围困刘邦之时,刘邦的32万步兵还在从晋阳陆陆续续奔向平城的路上。就这样,刘邦的军队被围在白登山上七天七夜,吃尽了苦头。当时的民间歌谣传唱道:“平城之下祸甚苦,七日不食,不得弯弓弩。”在平城之下,士兵们七天七夜没饭吃,拉不开弓,射不了箭。