从汉王元年(前206)八月兵出陈仓,到高祖五年(前202)初,楚汉战争延续了近四年的时间。在短短的四年内,刘邦以小击大,终于迫使不可一世的项羽在乌江自刎,其原因是多方面的。就项羽方面来说,他残暴寡恩,不但各方诸侯纷纷反项迎刘,连身边亲信也逐渐散去,终于落得众叛亲离的悲惨下场;而就刘邦方面来说,他对人才的笼络和运用,对民心的掌控,以及对军事全局的估量,都有很多精彩之笔,胜利虽然来之不易,却绝非偶然。
刘邦先是“明修栈道,暗渡陈仓”,一战击败章邯,司马欣和董翳被迫投降。接着,为了麻痹敌人,他派张良写信给项羽说:“汉王不过想得到关中,达成当初义帝‘先入关中者称王’的约定,就会止步了,不敢继续往东方扩张。”同时还故意把齐、梁等国约同造反的密信送给项羽,项羽因此专顾北向进攻齐地,放松对西方的警惕。
当年十月,项羽派九江王英布、衡山王吴芮、临江王共敖谋杀了义帝。刘邦得到这个借口,大为高兴,即刻挥师出关东向。他派萧何稳定关中的民心,积聚钱粮;同时派张良、郦食其等人策动关东诸侯反项,自己则先后攻破河南王申阳、韩王郑昌、魏王魏豹、殷王司马,一直打进了洛阳城。刘邦随即在洛阳为义帝发丧,号召各路诸侯,共讨弑主逆贼项羽。
汉王二年(前205)四月,趁着项羽正在和齐军大战,刘邦率各路诸侯兵马59万,突袭项羽的大本营彭城(今江苏徐州)。但进了彭城以后,刘邦老毛病又犯了,尽收项羽的珍宝、美女,每日置酒高会,以为天下指日可定。项羽听说彭城失守,急忙把讨伐齐国的指挥权交给部下,自己亲率3万精兵赶了回来。两军在城外大战,从早晨直杀到中午,汉军溃败,战死20余万人。刘邦只在数十骑的保护下仓皇逃走,连父亲刘太公和妻子吕雉都被项羽俘虏了。
经过彭城之战,诸侯大多背弃与汉国的盟约,重新倒向西楚。刘邦逃到下邑,得到妻兄吕泽的帮助,收拢残兵,退守荥阳。刘邦就在这里坚守不战,以牵制项羽主力,同时策动彭越和九江王英布从侧面打击项羽,派韩信北进,从赵地直到齐地,逐步蚕食摇摆于项、刘之间的诸侯势力。韩信先后平魏,破代,攻灭赵国,逐一斩断项羽在北方的臂膀。
刘邦还采纳陈平之计,在西楚阵营内实施反间计,离间项羽与其部下的关系。他困守荥阳时曾向楚求和,项羽就派使者前往汉营。陈平准备了美酒佳肴款待,可临到使者准备动筷子,陈平却故作惊讶状,说:“我还以为是亚父(指范增)派来的使者,原来是项羽派来的使者啊。”于是命令撤掉美食,换上粗粮。使者回去后将此事禀报项羽,项羽果然对谋士范增起了疑心,因此范增屡次催促急攻荥阳,项羽总是不肯听从。范增又是痛心,又是愤怒,说:“天下事大定矣,君王自为之,愿请骸骨归。”于是愤然离去,但还没走到彭城,就重病身亡了。
楚军围困荥阳一年多的时间,断绝了汉军的运粮道路,刘邦实在熬不下去了。汉王三年(前204)五月,楚军攻势转急,大将纪信对刘邦说:“请让我去蒙骗楚人,你趁机逃出去吧。”于是半夜打开荥阳东门,放出2 000多披甲的妇女,纪信穿着刘邦的衣服,坐着刘邦的马车,打着刘邦的旗号,跟随在后,口中大喊:“城中粮食已经吃完了,汉王投降!”楚军欢呼围观,刘邦趁机带着十多名亲信从西门逃了出去。
项羽知道上当后,凶残地烧死了纪信。刘邦逃出荥阳,经成皋(今河南巩县东北)进入函谷关,在关中召募了一些兵马,准备重返荥阳前线。袁生献计说:“汉、楚两军在荥阳对峙了好几年,士兵非常疲惫。希望大王兵出武关,项羽必会南下追击您。这样荥阳、成皋间的士兵就可以得到休整的时间。”刘邦采纳了他的建议,进军宛(今河南南阳)、叶(今河南叶县)方向,与助汉的九江王英布相配合,以引诱楚军南下。项羽果然中计,率主力匆匆杀来夺宛,刘邦坚壁高垒,不肯出战。
深入敌后的豪杰彭越,恰在此时于下邳大败楚军,项羽被迫放弃刘邦,东征彭越。刘邦趁机北进至成皋,可是刘邦还没站稳脚跟,项羽打败彭越后又杀了回来,一战攻克荥阳。刘邦匆忙和夏侯婴两人共乘一辆马车,从成皋逃出去,北渡黄河,宿在修武(今河南获嘉)。这里已是赵地,韩信、张耳两将正在此处指挥作战。刘邦直闯入两将营中,把他们所有的兵马都划归自己直接统辖,然后派韩信往东去经略齐地,张耳在赵地征兵。刘邦有了这支兵马,胆气又壮了起来,他派卢绾、刘贾率两万精兵南渡黄河,配合彭越在西楚内部打游击战。
当年十月,已经攻克成皋的项羽率领主力东向,再次去讨伐彭越。他留下大司马曹咎守城,命其小心防守,不要与汉军交战。项羽一走,刘邦立刻就赶了回来,派人羞辱曹咎,诱其出城迎战。结果是楚军大败,曹咎自杀,刘邦收复了成皋。项羽听闻消息,匆匆回军来救,和刘邦对峙于广武(今河南荥阳东北)。