刘邦为了抵御北方匈奴的侵袭,特意将韩王信由河南禹州一带转封到今天太原一带,都城就在晋阳(今太原南)。但是出乎刘邦和韩王信的预料,当时的匈奴以汉朝举国之力也未必能战而胜之,何况一个诸侯国。韩王信与匈奴交战,败多胜少,到这年秋天,王都马邑也被围困,只得多次派使者与匈奴求和。对异姓诸侯王本就猜疑的刘邦得知后,认为韩王信有“二心”,随即“使人责让信”。韩王信非常惊恐,他担心刘邦会治罪于他,索性就投降了匈奴。
韩王信的背弃是基于自保的深层动机,他知道刘邦多疑,担心长此以往可能要掉脑袋。与其战战兢兢地冒着生命危险给刘邦卖命,还不如反戈一击,攻打自己潜在的对手,如果一旦胜利,自己就可以除掉心腹大患,高枕无忧了。况且,当时的情形下,新的雇主匈奴那边的军事实力明显地强于汉朝这边,所以韩王信的打算也是一种很现实、很精明的考虑。
在这种情形下,公元前200年,刘邦御驾亲征前去平叛韩王信的叛乱。大军从长安出发,不久大败韩王信主力,斩杀了其大将王喜,韩王信远逃到匈奴,与匈奴兵联合,准备会战。冒顿单于派一万多骑兵逼近晋阳与汉兵交战,被汉军击败,逃至离石,又被击败。匈奴且败且走,收拢败军在楼烦(今宁武),而汉兵又鼓余威败之。