在秦朝的時候,蒙恬曾經率領了10萬大軍北伐匈奴,成功收複了河套地區黃河以南的土地,同時還築起了中國曆史上著名的偉大建築長城,來防禦匈奴的南下。秦末農民大起義以來,中原地區連年戰亂,原來那些戍守邊關的人開始離開邊境,因為匈奴就趁機南下,渡過黃河,來到南岸與秦王朝以前的中國邊塞為界。
當漢軍與楚軍於滎陽相持不下、雙方都被戰爭弄得疲憊不堪的時候,匈奴族卻在首領冒頓單子的率領下,統一了北方草原大地,設官分職,勢力逐漸強大,擁有能夠彎弓射箭的戰士30多萬人。
漢高帝建國後,將韓王信遷徙到代國,建都於馬邑。匈奴大軍包圍馬邑,韓王信因受到漢王朝懷疑,害怕遭到誅殺,率眾於馬邑投降匈奴。
韓王信投降匈奴,匈奴對漢王朝的實情多所了解,因而率大軍南越句注山,向太原郡進發,抵達晉陽城下。漢高帝親自率大軍迎擊,正趕上天降大雪,天寒地凍,士卒凍掉手指的十有二三。於是冒頓單於假裝敗走,引誘漢兵。漢軍果然中計追擊。冒頓將精兵隱蔽起來,把老弱殘兵暴露在外,於是32萬漢軍乘勝追擊。高帝騎馬首先到達平城(今山西大同市東北),而漢軍由於多是步兵,大隊人馬尚未趕到。這時,冒頓單於下令10萬精銳騎兵突然出擊,將漢高帝重重包圍於白登(白登為山名,在平城東)。高帝被包圍七天七夜,漢軍內外不能互相接濟軍糧,七日不得食。匈奴的騎兵,西方皆騎白馬,東方皆騎青馬,北方皆騎黑馬,南方皆騎紅馬,士氣高漲。
漢高帝在匈奴騎兵的重重包圍之中,又得不到軍糧的接濟,糧食斷絕,形勢危險萬分。這時,隨軍的戶牖侯陳平進獻奇計,用厚禮暗中賄賂單於的主妻閼氏(yan zhi,閼氏是匈奴君主正妻的稱號),閼氏便向冒頓進言說:“兩個國家的君主,不應當相互圍困逼迫。如今得到漢朝的土地,單於歸終也不能居住在那裏;況且漢王也有神靈保祐,望單於明察定奪。”冒頓與韓王信的部將王黃、趙利約定會合日期,然而王、趙的軍隊未能按期到來。冒頓懷疑他們與漢軍有什麼密謀,便聽信了閼氏的話,將包圍圈解開一角。於是,漢高帝命令士兵全部拉滿弓,搭上箭,麵朝外,從解圍的一角衝了出去,與外麵的漢朝大軍會合。
冒頓率領40萬精銳騎兵離去,漢高帝也率領大軍撤回。漢王朝建國後同匈奴大軍的第一次全麵的交鋒,便以漢高帝的白登被圍和用計脫險而告終。
原來,漢高帝在晉陽,聞知冒頓單於居於代穀(今山代縣西北的北麵),想要出擊匈奴,便派人窺視偵察匈奴的實情。冒頓得知這一情況,便把壯士、肥牛、肥馬都隱藏起來,使者看到的隻是老弱士卒和瘦小牛馬。十幾批派出的使者,回來後都說匈奴可以攻擊。這時,漢高帝又派劉敬出使匈奴。劉敬即婁敬,因獻策定都關中,高帝賜姓為劉。在劉敬尚未返回時,高帝所派出的32萬漢軍已出兵乘勝追擊,翻越了句注山(今山西代縣西北)。劉敬回來後向漢高帝彙報說:“兩國相攻,按理應該顯示誇耀自己的長處。如今我到那裏隻看見瘦小的牲畜和老弱士兵,這必定是想要顯露虛弱的假象,埋伏奇兵來取得勝利,以愚下的意見,認為匈奴不可攻擊。”
漢高帝此時派出的大軍正在乘勝追擊,聽劉敬發表反對意見,立即惱怒,大罵道:“你這個來自齊國的混蛋,靠口舌謀得官職,今日竟敢用胡言亂語敗壞我的軍心!”於是,漢高帝下令用枷鎖將劉敬囚禁在廣武(今山西代縣西南),自己親自前往平城,匈奴果然出奇兵將高帝圍困在白登。
漢高帝從白登逃出後,首先來到廣武赦免劉敬,向劉敬賠禮道歉。高帝誠懇地向劉敬說:“我沒有采納您的建議,以至於被圍困在平城。我已經把先前幾批說匈奴可伐的使者都殺掉了。”於是,高帝封劉敬二千戶,爵關內侯,號為建信侯。