白土曼丘臣、王黄立故赵将赵利为王以反,高祖自往击之。会天寒,士卒堕指者什二三,遂至平城。匈奴围我平城,七日而后罢去。
——《史记·高祖本纪》
汉七年(前201年)冬,刘邦亲率32万精锐大军东出函谷关,然后渡过黄河北上,在探知韩王信军队主力所在后,刘邦率军自太行陉攻入上党郡,一路击败匈奴和韩王信的小股部队,与韩王信主力战于铜鞮(今陕西沁县西南),一战击溃韩王信主力,斩杀其部将王喜,韩王信独身逃往匈奴。
韩王信逃走后,刘邦安抚当地百姓后,继续率兵北上,清剿韩王信的残余势力。
与此同时,韩王信的部将白土人曼丘臣、王黄等拥立赵国宗室后裔赵利为王,收拢韩王信的残兵败将,再度与匈奴合军负隅顽抗。
为了阻止汉军北上,冒顿单于在与韩王信、王黄等人商议后,派左、右贤王分别统领一万多骑兵与韩王信、王黄等人率兵自广武(今山西代县西南)南下,意图驻兵于晋阳,利用城高墙阔的晋阳,阻止汉军自太原盆地进入忻州盆地。
刘邦也明白晋阳的重要性,当他探知韩王信与匈奴大军再度南下后,便也迅速率兵北上,抢先一步占领了晋阳城,然后陈兵于晋阳城下以逸待劳。
等到韩王信与匈奴大军抵达,双方于晋阳城下大战,联军大败,韩王信率领残兵向西撤退,意图逃入吕梁山中,利用地形躲避汉军追击,刘邦则派兵紧追不舍,一路追至离石,彻底击溃了这股叛军。
韩王信的叛军向西逃窜的同时,匈奴败军则利用骑兵优势一路向北逃窜,并于楼烦西北重新集结兵力,试图卷土重来。然而,汉军并未留给他们重整旗鼓的机会,奉命北上追击的汉军精骑紧咬不放,不等匈奴败军站稳脚跟,便北出楼烦关发动了进攻,再度击溃匈奴骑兵。
由于汉军的节节胜利,让刘邦内心深处浮现出了“匈奴不过如此”的想法,有些被胜利冲昏头脑的他,竟然试图一举歼灭匈奴主力,彻底化解匈奴对汉朝北部的威胁。
为此,驻军于晋阳的刘邦,派出大量斥候出雁门关寻找匈奴主力。数日之后,有斥候回报匈奴主力正驻兵于代谷。
冒顿单于见汉军侦骑四出,意识到汉军这是想要寻找自己决战,于是选择将计就计,主动暴露自己的所在,以诱使汉军来攻。
为了达到诱敌的目的,冒顿单于将自己的精锐士兵和肥壮牛马全部隐藏到了谷内深处,而之将老弱残兵和瘦弱的牲畜布置于谷口。
虽然一连串的胜利,让刘邦有些骄傲轻敌,但多年纵横疆场的经验,还是让他保留了最后一丝理智,为了确保万无一失,刘邦又一连派出十余批斥候,前往代谷周边探查匈奴虚实,这些斥候皆回报说匈奴势弱,可以攻击。
刘邦见十余路斥候的探查结果一致,这才尽起大军北上,但随军谋士刘敬心中却有疑虑,并表示希望亲自前往探查,刘邦见其态度坚决,只好命其再度前往。
刘敬探查一番后,回报说,“两国交战,正是应该炫耀自己长处之时,然而我去探查了一番,却只发现瘦弱的牲畜和老弱的士兵,这显然是在故意暴露自己的短处,而将精兵埋伏起来的表现。我认为不该贸然出兵”。