一是刘邦想要建立汉的威信力,巩固他的统治。在公元前201年九月匈奴出兵攻打马邑,而马邑是当时韩王信的封地。匈奴大军把马邑重重包围,韩王信见匈奴势大,便向匈奴投降了,转过来跟匈奴合伙进攻晋阳。
刘邦想在匈奴面前展示他汉朝的威力,以震慑四方,巩固汉高祖的统治,于是他选择亲自带兵出征北伐。
二是刘邦与韩信自出兵征战以来从来没有一起攻打一个地方,两人都是领兵各打各的。意思就是要攻打一个地方刘邦领兵去了,韩信就不会去插一脚。同样的韩信出兵的目的地,刘邦也铁定不参与。从来没有合作过的两个人不会要合作把匈奴打败,只会想着自己领兵去北伐。从此看来,要出兵攻打匈奴,是汉高祖刘邦决定的,也就不会让韩信参与进来。
第三个也是最重要的原因是韩信是汉初三大名将之一,本身就是兵法谋略的大家。在韩信打败楚霸王之后,刘邦忌惮韩信在军中的威望,对韩信各种不信任。在公元前201年十二月,刘邦削去韩信楚王之位,封韩信为淮阴侯。汉高祖想派军队前去救援韩王信,但即使韩信主动请缨出征,刘邦绝不会让韩信领兵出战。因为他好不容易夺去韩信的兵权,而韩信的楚王之位刚被他削了他怕韩信也不会全心作战,也怕两个韩信在北方双双联手。所以,汉高祖道:“淮阴侯称病久已,难堪战事,岂可为帅北征?公休矣!”拒绝让韩信领兵消灭匈奴。