與劉邦稱帝幾乎同時,位於北方的遊牧民族部落匈奴也發生了一場政變,生性凶悍的單於之子冒頓,殺了父親,娶了後母,自立為王。這小王當政不久,就發動了對漢朝的侵略。
當時漢朝負責守衛北方邊疆的是韓王姬信。他見冒頓帶了二十多萬人馬進攻都城馬邑,自知不是人家的對手,馬上把情況報告了朝廷。劉邦立即親率四十萬大軍前往剿滅。
劉邦大軍當時離馬邑有一千多裏路,在那時的交通條件下,怎麽著也要月餘時間才能趕到。馬邑眼看就要被冒頓攻破,緊急情況下,姬信采取了一個緩兵之計,派使向匈奴求和。北方民族屢屢進犯中原,本也就是想搶掠一些物資,今天漢使給他們送來了不少東西,提出講和,順勢就答應了。這個情況很快被小人報告到劉邦那裏,說是姬信投降了匈奴。劉邦聽到這個消息很氣憤,就派使譴責姬信。
姬信左等劉邦不來,右等不來,見到一個洛陽來的人還是來訓斥他的,這讓他怎不寒心,聯想到臧荼被除,韓信立了那麽大的功,也被劉邦殘忍地殺害了,跟他幹還有什麽意思,動不動就被懷疑,真是提心吊膽,如履薄冰,早晚要被除掉。與其這樣,不如真的反了算了。想到這,姬信果真就投靠了匈奴。
有了內賊的引路,冒頓很快打到太原郡。劉邦這時也到了韓國,駐紮於晉陽。冒頓見劉邦帶了這麽多人,勝於自己兩倍,就沒有硬拚,而是使用了個花招,把漢軍引誘到廣袤的大草原上作戰。劉邦那會新做了皇帝,不免感覺很好,好大喜功,求勝心切,加上錯誤地判斷,真的以為北方民族不堪一擊,於是就跟著冒頓的屁股追了上來,結果到了白登這個地方,被匈奴兵結結實實地圍了起來。
白登是一座大山,當時正時大冬天,劉邦大軍在這裏一連被圍了七天,又凍又餓,幾乎到了絕境。在這種情況下,陳平讓人畫了一張美人圖,送給了冒頓的寵姬閼氏,說如果冒頓繼續圍下去,漢皇準備把他寵受的這個美女送給單於,以換取生路。閼氏擔心這個美女將來會奪了她的愛,於當晚與冒頓溫存時就用花言巧語勸冒頓撤兵了。後來劉邦采取和親的政策,把自己的幹女兒嫁給冒頓,每年再給些北方沒有的東西,算是擺平了這宗外患。