贯高弑君事件平息没多久,又一名开国将领陈豨在西北举起举起了反叛的大旗。
陈豨加入刘邦阵营的时间未见记载。贯高事件后,刘邦改封戚夫人之子代王刘如意为赵王,陈豨以郎中身份封侯,被任命为赵国相国,领兵监管代地、赵国的边境。郎中为主管皇宫安全的的官员,备受皇帝信任且地位高贵,这证明陈豨与刘邦之间曾经维持着相互信任的亲密关系。
陈豨年少时仰慕信陵君魏无忌,所以在守边时,招募了很多门客,并且对他们礼遇有加。陈豨从赵国过境时,随行门客有千余辆车之多。赵国丞相周昌向皇帝告状,说陈豨门客众多,掌兵边境,要防范他谋反。于是刘邦就命人去调查陈豨门客所做的不法之事,果然发现其中很多都与陈豨相关。陈豨听说这个消息后非常恐慌,暗地里派人前往韩王信旧将王黄、曼丘臣处。此时王、曼两人已经带兵投奔了匈奴,这说明陈豨知道自己被告状后,起了不臣之心。不过,在这个时候,刘邦还对此毫不知情。
汉十年秋,刘太公去世,刘邦召陈豨到长安参加丧事。陈豨心虚,认为刘邦必定是要借此机会除掉自己,于是称病不往。九月,陈豨与王黄等人起兵谋反,自立为代王,带兵攻打击赵、代两国。刘邦听闻后,说道:“陈豨曾是我的使者,我很信任他。我担心代地的安全,所以封他为侯,以相国之职辅助代王驻守代地。如今他竟然勾结王黄谋反!对于能离开陈豨、王黄归降汉朝的官吏、百姓,全部赦免。”随后刘邦再次御驾亲征,顺利的进入了邯郸,他高兴的说:“陈豨没有南下占领邯郸,以据漳水天险,我就知道他是无能之辈。”刘邦遣使向梁王彭越征兵,彭越称病不往,仅派了一直小队人马到邯郸,惹得刘邦非常生气,专门再次派人去责怪彭越。
刘邦为什么这么说呢,我们看一下长安、代国、邯郸和漳水几者的关系。代国在长安东北方向,且隔着黄河,赵国也在长安东北,但又在代国以南,漳水在赵国都城邯郸以南。也就是说,刘邦大军要想平叛陈豨,最方便的路就是向东进入赵国,再转而北上攻入代国。如果陈豨能够提前占领邯郸,就可以凭借南侧的漳水天险抵抗刘邦,从而建立战略优势。而此时,刘邦已经北渡漳水进入邯郸,便可沿着太行山脉一路向北,再无大的自然屏障了。
这时,周昌来报,说赵国常山郡二十五城已经失守二十城,应该诛杀守军将领。得知守将并未谋反后,刘邦说:“是他军力不足,此人无罪。”刘邦能够审时度势的准确界定责任,这对于统治者已属不易,彼时又是平叛战时,更加凸显出刘邦的英明。
随后,刘邦命周昌从赵国的壮士中选择能将兵之人,周昌共报上来四个人。刘邦接见了他们,还不等几人张口就骂道:“此等小儿如何为将!”四人惭愧跪地。但刘邦却封他们为将,食邑千户。大家都没看懂刘邦这番举动,都说皇上反秦灭楚,还未将功臣全部分封,如今却封了四个无功的千户侯,这是为什么。刘邦说:“并非如你们所想。陈豨反叛,占领赵、代两国,我发檄文向天下征兵,到现在还没有军队前来支援,如今我们只能调用邯郸城的军队。为了能激励赵国的青年才俊助我平叛,我怎么会舍不得区区四千户。”大家这才明白刘邦的用心。
刘邦又问:“乐毅可有后人?”于是寻得乐毅之孙乐叔,封其为乐乡侯,号华成君,令其共同参加平叛陈豨。乐毅为战国后期燕国名将,官拜大将军,曾辅佐燕昭王振兴燕国。另一方面,刘邦得知陈豨的将领多为商人,又下令用金钱去收买他们,这一计果然招降了其中多数人。
汉十一年冬,刘邦驻军邯郸,陈豨诸将开展了大规模的进攻行动。侯敞率万余人打游击,王黄带着一千多骑兵攻击曲逆,张春领兵万余人南渡黄河攻打聊城。汉军大将郭蒙与齐国将领共同迎战,大破陈豨军队。太尉周勃领兵经太原进入代国攻打马邑,虽未能夺城,但也让马邑守军元气大伤。陈豨另一大将赵利踞守东垣,刘邦久攻不下,反遭辱骂。刘邦盛怒攻城,骂人者被斩。刘邦下令,坚守不反的各县,都免赋税三年。尽管刘邦亲征,周勃驰援,赵、代两国北至马邑,南到邯郸都未能避免战火,但汉军还是没能在这一年消灭陈豨。可见此次陈豨叛乱的规模之大,远胜于韩王信谋反。
此役之后,刘邦回到长安,这时韩信已经被吕后和萧何用计斩杀。通过征战陈豨叛乱,刘邦认识到,代地与匈奴接壤太多,百姓不堪其苦,于是划了太原郡的一小部分土地给代国,并设立云中郡,以减少百姓的痛苦。此举进一步体现出刘邦对“责任”的正确认识,没有把边乱随意的归咎于守边百姓或将士。
刘邦又说:“可在王、相国、通侯、二千石高官中选择合适的人立为代王”。在燕王卢绾、相国萧何等三十三人都说:“皇子刘恒贤智温良,请皇上立他为代王,定都晋阳。”刘邦当然会准许这个建议,同时大赦天下。这个代王刘恒便是日后鼎鼎大名的汉文帝。
汉十二年冬十月,又经过一年的平叛作战,陈豨最终被周勃斩于代国当城。《汉书》并未对这一年的平叛情况进行描写,但我们可以推测,陈豨军队应该是在前一年被重创,只是苟延残喘的拖了很久。因为在汉十一年,三月梁王彭越谋反,五月赵佗被立为南粤王,七月淮南王黥布谋反,三个月后刘邦亲征黥布。由此可见,这一年刘邦的主要精力已经不在陈豨身上了,而是马不停蹄的投入到了下一场平叛战争中。