楚汉战争

背景

秦二世元年（公元前209年壬辰年），陈胜、吴广在大泽乡起义，天下群雄并起反秦。在此期间，陈胜的部将周章由陈县略地至戏水附近，吴广部下周文更是率军打到离咸阳只有数十公里的戏地。同时，六国旧贵族也趁机反秦复国，武臣重建赵国、韩广重建燕国，楚国贵族项梁、项羽杀死会稽郡守殷通，率领八千江东子弟兵加入起义，北上渡江作战。不久，吴广因内哄被杀；陈胜也兵败于荥阳，被叛变的车伕庄贾斩首。其后范增进言“楚虽三户，亡秦必楚”，项梁就以重建楚国为口号，立楚怀王之孙熊心为王，也称为“楚怀王”，史家称为楚后怀王。同时，泗水亭亭长刘邦杀死沛县县令而造反，自称“沛公”（沛县首领），率部投奔项梁。
公元前208年，项梁在取得对秦军的连胜后骄傲轻敌，宋义谏，但项梁不听，导致定陶之战战败，项梁战死。此战后，秦将章邯及王离认为楚军元气大伤，已构不成实质威胁，遂调转枪口，率秦军40万北上攻赵国，围赵王歇于巨鹿。楚后怀王见项梁兵败，由盱眙迁都到彭城。赵国屡屡求救，于是楚后怀王派遣宋义为上将军、项羽和范增为副将，率军6万北上救赵，同时派刘邦进攻关中，楚后怀王还许诺“先入定关中者王之。”
公元前207年，宋义率军到达战场附近，但宋义懦弱无能，且想观秦赵相斗，逡巡逗留46天不进，贻误了宝贵的战机。项羽见此情形，果断杀死宋义，夺得军权，率军破釜沉舟，与秦军爆发巨鹿之战，项羽先派英布截断秦军粮道，再亲率以楚军为主的诸侯盟军与秦军决战。楚军视死如归，九战九捷，大败秦军，俘秦主帅王离，副帅涉间自焚，秦勇将苏角被项羽亲自击杀。
同时，刘邦领军向西攻击，先攻昌邑，在缺少攻城器具情况下，虽有彭越协助，仍然攻城不下。不久，郦食其投奔刘邦，建议他去攻击陈留以夺取粮草，攻击成功。刘邦率军在中原战斗时，项羽正在追击章邯，章邯当时粮食已缺，派别将司马欣往求粮，被拒绝后陈余又送信来，使得章邯犹豫不决。不久，项羽攻克三户津，截断章邯退路，章邯派偏军于漳水南岸战项羽，大败。章邯再派军战于汙水（漳水的支流），又败。章邯因得不到秦二世跟赵高的支援被困，后见大势已去，被迫在洹水南殷墟（今河南安阳）率秦军20万投降。巨鹿之战后，项羽声威大振，联军会师后，各路起义军将领被他的气势所震慑，甚至不敢与他直接对视。项羽由此被各路诸侯推举为上将军，统兵40万，继续反秦事业。
刘邦来到陈留西约30公里的开封，与秦大将赵贲大战，大破赵贲，三月，砀郡长刘邦自开封向北约100公里至白马击败杨熊夺取白马，再降南阳，占领武关，在蓝田再破秦军，逼近咸阳，赵高派人偷偷与刘邦商议平分关中被拒绝。同时，二世三年八月，赵高杀害秦二世，拥立子婴为秦王，但子婴九月即杀了赵高，取得大权。公元前207年11月，刘邦攻抵灞上，子婴出降，秦帝国只经过了短暂的15年统一后便灭亡了。刘邦派军据守函谷关，阻止项羽联军入关。不久，项羽以及诸侯40万大军攻克函谷关，直入关中，驻兵新丰鸿门。此时刘邦只有10万兵马，只得将关中拱手相让。鸿门宴上，范增欲杀刘邦，但刘邦言词甚恳切，项羽顾及与刘邦的结义之情与诸侯的威胁，放归刘邦。
公元前206年2月，项羽尊楚后怀王为楚义帝，徙义帝于江南，都郴，后来又刺杀了义帝。公元前206年3月，项羽自封为西楚霸王，楚国疆域为梁楚九郡（今华东、江南大部分地区），建都彭城（江苏徐州），又分封十八路诸侯。刘邦被封为汉王，辖汉中、巴、蜀一带，建都南郑（今陕西汉中）。关中故秦之地三分，封章邯为雍王、司马欣为塞王、董翳为翟王。项羽分封诸侯后即罢兵裁军，东归彭城。

分封肇乱

齐国相田荣因拒随从率军入关，故而没有得到分封。项羽把齐地一分为三，把齐王田市徙为胶东王，引起田荣对项羽封王方案极为不满，率军驱逐齐王田都，并阻止齐王田市任胶东王。田市惧怕项羽，欲自行去胶东就封。田荣怒，追斩田市，自立为齐王。随后，田荣再击杀济北王田安，兼并三齐之地。
赵国旧大将军陈馀与国相张耳在钜鹿之战结怨而去职，将兵权让给张耳，归隐南皮。项羽分封时闻陈馀贤，与张耳一体有功，但未从入关，因此仅将南皮附近三县封与陈馀。陈馀见张耳为王，而自己功劳与张耳相当，却仅得南皮三县，对此十分不满。田荣兼并三齐，陈馀派夏说为使者使齐借兵。田荣又借兵给陈余，令陈余击败张耳，重迎赵王歇复为赵王。赵王歇感念陈馀，封陈馀为代王。赵王歇弱，因此陈馀不归代国，自称赵国太傅，继续辅赵，陈馀派夏说以代国国相身份，留守代国。
项羽分封时虽据梁国为己有，但梁地时有义军首领彭越有众万余，彭越未从入关，故亦无分封，无所属。田荣除资助陈馀外，亦封彭越为齐国将军，令其在梁地起兵破楚。项羽派萧公角击梁，彭越大破楚军。而在齐赵北方，故燕王韩广亦不愿徙王辽东，项羽所封之燕王臧荼击杀韩广，并王辽东。齐赵之反，使得楚国受到威胁，于是项羽决定北伐田荣。
汉元年八月，项羽闻刘邦袭取关中，于是杀韩王成，立亲信故吴令郑昌为韩王以拒汉。初项梁立韩公子成为韩王，张良为韩相国。项羽封诸侯，韩王成仍为韩王，但是项羽以张良从汉王刘邦，而韩王成又无功，故不许韩王成就国。项羽东归，韩王成被带至彭城。
项羽分封后数个月，形势就陷入一片混乱。项羽所确定的新秩序基本上被打破。同时项羽攻齐，向九江征兵，英布不从，引发项羽不满，项羽数遣使责英布。

还定三秦

在齐地田荣兼并三齐之时，刘邦在汉中也为攻袭三秦做准备。刘邦入汉中，项羽给予刘邦三万士兵。刘邦依张良计，入南郑时烧毁栈道，以防被偷袭和向项羽示意无外侵的意愿。
项羽帐下的执戟郎中韩信亦在此时从项羽军中逃出，投靠刘邦，但没有被重用，仅任连敖，后坐法当斩为滕公夏侯婴所救。夏侯婴与之交谈，知其有才能，向刘邦推荐韩信，刘邦拜韩信为治粟都尉。韩信自觉不能受到重用，欲离去另寻明主，萧何听闻后连夜苦追，人称“萧何月下追韩信”故事。萧何再次向刘邦推荐韩信，刘邦拜韩信为大将军，统领三军。
公元前206年八月，刘邦用韩信的计谋，但受阻于陈仓，所幸赵衍指出一条小道。刘邦沿着这条小道进入关中，趁项羽北攻田荣时，突然出现在三秦旧将面前，在好畴击溃章邯，最后围困章邯于废丘。隔年塞王司马欣、翟王董翳被迫向汉王刘邦投降。之后几个月，刘邦率领汉军攻取陇西、北地、上郡。这样，三秦除章邯困守的废丘之外全部归汉。
而此时因项羽杀韩王成，张良间行归汉，派人遗书项羽，称“汉欲得关中，如约即止，不敢复东。”项羽以故无西意，而北击齐。
刘邦略取关中时，九月，命令薛欧、王吸出武关，与王陵联合，迎接刘太公和吕后于沛。十月，汉王拜韩王信为韩国太尉，令其循韩地，并许之若定韩地则拜其为韩王。韩信循韩地，下十余城，项羽所立之韩王郑昌降，汉二年十一月汉立韩王信为韩王。
汉二年十月，汉王刘邦进至陕（今河南陕县）。在汉基本平定关中之后，开始准备东进了。

彭城之战

公元前205年三月，刘邦东攻，迫降塞王司马欣、翟王董翳、河南王申阳。刘邦渡临晋，魏王豹率兵跟从，破河内，虏获殷王司马卬，南渡河，直抵雒阳。刘邦闻项羽命英布刺杀楚义帝，为义帝发丧，号召天下王公反抗项羽。
刘邦部将张良、陈平、韩信、吕泽、张耳、夏侯婴、樊哙以及五诸侯军，至外黄，击败楚将程处、王武，彭越率三万人归附刘邦，刘邦封彭越为魏国国相，攻打梁地，派樊哙北上攻打邹县、鲁县、薛县、瑕丘，以阻止项羽从齐国南下，向东攻打下邑、派吕泽驻守，下邑在萧县西面不远，萧县在彭城西面不远，项羽南下救援彭城必经萧县，这样，如果项羽回援彭城，吕泽可以与刘邦东西两面夹击项羽。与北路军曹参、灌婴会合，进攻砀县、萧县，攻取彭城。
项羽虽击败齐军，杀死田荣，但项羽暴虐，使齐地降而复叛。田荣之弟田横立田荣之子田广为齐王，继续抗楚，项羽因此深陷齐地而无暇抽身。四月，刘邦与诸侯联军号称五十六万人，趁虚直捣楚都彭城。此时彭城由项羽军师范增守备，面对敌众我寡的不利态势，范增决定不死守彭城。数周后，在给予汉军以极大杀伤后，范增主动率大量楚军有生力量撤出彭城。
虽只得了一座空城，但以刘邦为首的各诸侯却以为他们取得了大胜，开始麻痹大意起来。入城后，联军日夜欢饮，军纪败坏，戒备松弛。项羽听闻这一情况，决定出奇兵制胜。他亲率精锐骑兵三万人疾进，令士卒衔枚，马蹄裹布，由曲阜经胡陵，到萧县，于清晨攻击汉军，至中午大破汉军。韩信等各路汉军败退至谷、泗水，被歼十余万人。楚军一刻不停，继续追杀，汉军败走，于灵壁东边的睢水上被楚军驱赶下河，汉军士兵光淹死的就有十数万，使得睢水被尸体阻塞，河水一度断流。
此即公元前205年的彭城之战。此战中，西楚霸王项羽充分利用汉军自以为人数众多，麻痹大意的弱点，只率三万精兵便击溃刘邦五十六万大军，是为中国乃至世界战争史中以少胜多之典范。
美中不足的是，彭城之战，项羽虽大胜，但田横亦复定三齐。

下邑画谋

刘邦大败于彭城，刘邦收集散兵到下邑。父亲刘太公、母亲刘媪和妻子吕雉被楚军掳为人质。诸侯见刘邦溃败后，重新投奔项羽，连塞王司马欣和翟王董翳也入楚为将。汉王刘邦以杀死张耳向赵国太傅陈余结盟，陈余发现汉王刘邦并没有杀张耳，赵兵退去反与汉为敌，汉王刘邦联盟顿时瓦解。时吕后兄周吕侯将兵居下邑。
张良亦至下邑，与刘邦于下邑规划下一步对策。张良说：“九江王黥布，楚枭将，与项王有郄；彭越与齐王田荣反梁地：此两人可急使。而汉王之将独韩信可属大事，当一面。即欲捐之，捐之此三人，则楚可破也。”刘邦采纳张良建议。

京索之战

刘邦在彭城之战后，势力一落千丈。刘邦在下邑收集散兵后，到达虞（今河南虞城县），派随何出使九江，随何成功游说九江王英布投汉。项羽不得不派龙且分兵攻打英布，牵制了项羽的后方，后汉军往彭城东南边的灵壁溃散，刘邦向西撤退，首先去了下邑与周吕侯吕泽会合，然后向南接应败兵，在砀县驻扎，战败后刘邦及时稳住阵脚，防止了大军继续溃散。刘邦驻守下邑时，马上吸引了项羽亲自来进攻，彭城之战一个月之后，公元前205年五月，刘邦回到关中。汉军水攻废丘，雍王章邯在抵抗了十个月后兵败自杀，刘邦攻占三秦分兵灭魏，刘邦同时北上灭赵。同时，英布与龙且战争，不得胜利，与随何往见刘邦，楚军尽取九江。
刘邦收取士卒，会合关中萧何派来的援军，加上韩信率领残兵败卒赶来会合，项羽率领楚军亦追击而至，刘邦指挥诸军并且让灌婴率领汉军骑兵于“京县”（今河南郑州荥阳豫龙镇京襄城村附近）、“索亭”（今河南荥阳索河街道）之间击败项羽统领的楚军，将楚军击退到荥阳以东。此为京索之战。
京索之战，汉军稳住阵脚，楚军也无力突破汉军防线进攻关中。双方从此开始在荥、成一带拉锯，战争进入相持阶段。

汉军北方战线

京索之战后，刘邦回到栎阳，进行整顿，立刘盈为太子。时关中爆发饥荒，刘邦令关中民移民至汉中、巴、蜀。接着刘邦再次来到荥阳前线。八月，汉分兵，韩信、曹参率军伐魏,后刘邦北上击赵；刘邦与韩信在襄国会合，杀赵王歇。周勃、召欧等继续平定恒山、巨鹿、燕 国，燕王臧荼降汉，项羽派楚将争夺赵国，唐厉在武城打败楚军。
韩信请刘邦封张耳为赵王，刘邦同意。

安邑之战

汉二年（前205年），魏王豹借口亲人有病，重返魏地，重新归顺项羽，封锁蒲阪，起兵反对刘邦。刘邦派出郦食其游说，不成，派韩信曹参攻打魏国。不久，魏王豹驻兵蒲阪，堵塞临晋。曹参以代理左丞相的身份分别与韩信各率军向东攻魏国，在东张（秦汉东张县包括蒲坂、临晋关，所以魏军主力应该在临晋关一带防守“魏王盛兵蒲坂，塞临晋”)大败孙遫的军队。曹参率军大败魏王亲自率领的军队，魏豹逃跑到武垣，被汉军活捉。取平阳，得魏王母妻子，尽定魏地，凡五十二城。刘邦赐曹参食邑平阳，安邑之战后不久，韩信与张耳被派往赵地，汉三年九月（前204年），韩信与曹参先破代兵，生擒代国丞相夏说于阏与，但刘邦很快就收回军队主力。

灭赵之战

刘邦命令韩信与张耳继续率兵经井陉攻打赵国。赵王歇与陈余在井陉口部署二十万重兵，企图阻止汉军北上。赵将军李左车建议派三万士兵给他，截断韩信的粮道，陈余率军在前线防守，使韩信进退两难，不出十日，定能斩杀韩信和张耳。但陈余懦弱且迂腐，自恃兵精粮足，坚持正面迎战，拒绝使用李左车的计谋。韩信得知陈余不用李左车之计，就放心率军出井陉，并派出两千轻骑兵，命他们手持汉军旗帜，准备在赵军倾巢出击后，立刻攻占其营寨，插上汉军旗帜。不久，韩信在绵蔓河畔设背水阵，诈败诱敌，陈馀中计，大笑韩信不懂兵法，命赵军猛攻背水阵。汉军知道已无退路，人人拼死作战，赵军不能打败汉军，只好撤退，但汉军两千骑兵已经攻占敌营，插上汉旗，回撤的赵军见状，一溃千里。汉军乘胜夹击追杀，大破赵军，斩杀陈余于泜水上，俘虏赵王歇、李左车。此为汉三年十月（属前204年）。
与此同时，刘邦亦亲攻赵。汉将靳歙兵出河内，击赵将贲郝于朝歌，破之。又随刘邦进击安阳以东，下七县；别将攻赵军，虏两司马，得赵军二千四百余人。接着刘邦对赵之邯郸发起进攻，破赵军，攻下邯郸。汉将靳歙破赵军于平阳，攻下邺。这样赵国悉平。刘邦与韩信在襄国会合，杀赵王歇。周勃、召欧等继续平定恒山、钜鹿、燕国，燕王臧荼降汉，项羽派楚兵攻击赵国，唐厉在武城打败楚军。
汉灭赵之战的过程是，韩信与曹参受刘邦的命令，先破代国，杀夏说，把赵国的注意力转向赵国北部，派韩信与张耳在井陉设疑兵，利用地理优势吸引赵军主力，刘邦自己亲自率兵，趁虚直取邯郸。当赵国失去邯郸，襄国危急，陈馀进退两难，此时韩信与张耳出井陉，攻杀了陈馀。赵王歇逃到襄国，刘邦与张耳、韩信南北夹击襄国，攻破襄国会合，杀赵王歇，平定赵国。后来汉军又平定了巨鹿、常山郡，招降了燕国。韩信张耳继续平定赵国余寇，刘邦、靳歙、周勃、曹参等返回敖仓，此前英布被龙且与项声打败，与随何归汉，此时英布正式归降刘邦，这时汉营调走他旗下的兵到荥阳抵抗楚军。

平齐之战

韩信当时向东攻击，尚未渡过平原津时，刘邦已经派出郦食其往齐国说齐王。韩信于是打算停止进兵。但由范阳来的蒯通认为郦食其一介书生，竟能凭三寸不烂之舌说下齐国七十多座城池，恐怕韩信的功劳比不上郦食其。于是韩信跟从他的计谋，袭击齐国。当时齐王见刘邦已经派出郦食其，所以安心下来，把历下的守军撤走。
韩信率兵攻打历城，齐国叛汉，攻打楚国后方的靳歙与丁复不得不停止进攻，回到前线，刘邦派灌婴、曹参、陈武等支援韩信，攻打齐国
灌婴、曹参等到达齐国，攻下历城，齐王逃往高密，向项羽求救，项羽派龙且援齐汉四年十一月，陈武军，蔡寅军，丁复军，王周军，陈涓等汉军杀齐王田广、龙且，齐相田横自立为齐王，灌婴在嬴县打败田横，田横投奔彭越，曹参留在齐国继续平定齐国顽军。
同时，项羽见龙且败死，遂派武涉去游说韩信投楚或中立，蒯通也建议韩信应该自立门户，但全部被韩信拒绝。于是武涉离开，蒯通装疯逃去。韩信遂坐镇齐地

荥成之战

汉三年十二月，韩信与张耳留下在赵国继续跟余寇作战，刘邦返回荥阳。此前英布被随何策反，项羽派龙且项声攻打英布，英布战败，与随何回到了荥阳。刘邦召见英布，派英布重返九江，收聚数千人归汉，刘邦也离开荥阳，从成皋南下，到宛县（今河南南阳）、叶县一带迎接英布，给英布增兵，一起回到成皋。
刘邦据守荥阳，开始修筑甬道，由敖仓运输粮食来荥阳。与项羽对峙，双方进入相持状态。
刘邦为解除荥阳相持的僵局，命令靳歙击断楚军从荥阳至襄邑的粮道，命令灌婴击断了楚军从阳武至襄邑的粮道，离开荥阳，攻打楚国后方的二号大本营：鲁城，并留下御史大夫周苛、魏王豹、韩王信、枞公等人守荥阳。刘邦与灌靳二将攻打鲁城的时候，汉三年八月，项羽猛攻荥阳，负责守荥阳的御史大夫周苛以魏王豹是反复之人，难与共守城，杀了魏豹。随后项羽便攻破了荥阳，杀了御史大夫周苛、枞公，俘虏了韩王信，又攻下了成皋。
刘邦得知荥阳已失守，便命令靳歙等攻打楚国的后方，后来靳歙攻下缯、郯、下邳，蕲、竹邑，几乎包围彭城，同时刘邦自己与灌婴回前线，在燕县打败楚将王武，在白马津打败楚将桓婴，渡过白马津，至河内，南渡黄河回到洛阳。
此时项羽攻下了成皋，进军至巩县，汉军与楚军在洛阳东边的巩县交战，楚军战败，项羽不能继续西进，楚军退至成皋，据险坚守，汉军攻之不下，一时无法夺回成皋。刘邦产生了放弃攻打成皋、退守巩县与洛阳的念头，郦食其劝刘邦不要退却，向刘邦说明敖仓的重要性，即放弃成皋与荥阳意味着放弃敖仓。郦食其说：“楚人拔荥阳，不坚守敖仓，乃引而东，令适卒分守成皋。楚军为什么要这样做？因为此时靳歙、丁复、傅宽等正在扫荡楚国的后方，项羽不得不分兵攻打他们解后方之急，故不能全力守成皋与敖仓。我方务必夺回成皋与荥阳，并坚守敖仓，取得战略上的优势，向诸侯昭示天下形势。”郦食其并自请出使齐国，劝说齐王降汉。刘邦接受了郦食其的建议。

彭越扰楚

刘邦兵败彭城，彭越亦亡其所下之城，率军北居河上，往来为汉游兵击楚，绝楚军粮道。汉三年五月（203年），彭越率军渡睢水，与楚将项声、薛公战于下邳（今江苏邳州古邳镇），大破楚军，杀薛公。
汉三年九月，刘邦采用郎中郑忠之策，派将军刘贾、卢绾将卒二万人、骑数百，由渡白马津，进入楚地佐助彭越。汉军与彭越联军烧掉楚军积聚的粮草，楚军乏食。楚军回击刘贾，刘贾坚守不出不与楚军交战，与彭越互相呼应。
接着彭越攻梁地，下睢阳、外黄等十七城。项羽无奈，只好留大司马曹咎守成皋，嘱令不与出战。然后东击彭越，迅速拿下陈留、睢阳、外黄等地。彭越败北走谷城。
汉四年秋，项羽南走阳夏，彭越趁势下昌邑旁二十余城，得谷十余万斛送给汉军。汉五年冬十月，彭越得到刘邦立其为梁王，王睢阳以北至谷城，于是出兵助汉。十一月，汉将刘贾渡淮围寿春，楚大司马周殷叛楚，以舒屠六，举九江兵迎英布，并行屠城父，亦进至垓下。

失彭城

韩信拒绝武涉游说以及蒯通建议后，自己坐镇齐国，同时刘邦命令灌婴对楚直接发起进攻。
灌婴率汉军首先进攻楚的鲁地，大破楚将薛公杲于鲁北。南下再破薛郡长，攻博阳，进军至下相，夺取取虑、僮、徐等县。接着渡过淮河，进至广陵（今江苏扬州），尽降楚之城邑。但项羽很快派项声、薛公、郯公夺回淮北。灌婴回师复渡淮，在下邳大破项声、郯公军，斩薛公，夺取下邳。接着追击楚军，破楚军于平阳（南平阳，今山东邹城市），回师还攻并占领彭城，虏楚柱国项佗降留、薛、沛、酂、萧、相。攻苦、谯，再次俘获亚将周兰。
灌婴平淮北后，与刘邦军会师于颐乡（位于今河南鹿邑县）。

鸿沟和约

彭越、刘贾袭扰楚军后方，使楚军补给无法保障，前方士疲粮绝。此时灌婴所部尽略楚地，夺取彭城，虏楚柱国项佗。刘邦趁机派陆贾为使者与项羽进行和谈，遭项羽拒绝。之后刘再次派出侯生出使楚国，终议和成功，即：楚、汉两家鸿沟和约，约定中分天下，双方以鸿沟为界，以东属楚，以西属汉，此称“楚河汉界”； 并放还刘邦家人，止纷争，罢干戈。
和约订立后，项羽如约放还刘邦家人。刘邦封侯生为“平国君”，但侯生本人却功成隐退。

阳夏固陵

张良、陈平建议撕毁鸿沟和议，趁楚军疲师东返之机自其背后发动追歼。张、陈二人认为：“汉有天下太半，而诸侯皆附之。楚兵罢食尽，此天亡楚之时也”，建议“不如因其机而遂取之”。刘邦遂听张良、陈平的建议，趁楚军锐气消磨殆尽的退兵路上发起追击。彭越趁项羽向南撤退到阳夏之机，攻克昌邑旁二十多个城邑，缴获谷物十多万斛，用作汉王的军粮。刘邦亦趁几率军发起追歼，于汉五年十月（按：这时以十月为岁首）击败项羽亲率楚军取得阳夏（今河南太康），樊哙虏楚大将周将军卒四千人。
刘邦率领汉军追击项羽至固陵，项羽为了摆脱汉军，发动反击攻打刘邦。刘邦在各路汉军没到的情况下，为避免不必要的损失，选择高壁深垒防守战，为接下来的反击战做准备。刘邦另派刘贾南渡淮水包围寿春，刘贾很快到达，派人寻找机会招降楚大司马周殷。周殷叛变楚王，帮助刘贾攻下九江，迎着武王黥布的军队在垓下会合，断项羽向南逃后路，并共同攻打项羽。不久，灌婴、靳歙率领骑兵军团从彭城往固陵而来，刘邦亲自在固陵东边颐乡与灌婴率领的汉军铁骑会合。项羽得知灌婴、靳歙等率领汉军东来后，为防自己被包围往南退守至陈下，刘邦在灌婴、靳歙率领精锐骑兵到来后，发动反攻。汉将宣曲侯义率领骑兵和汾阳侯靳强率汉军为先锋，攻固陵楚军，便击破了楚大将钟离昧的部队，揭开了陈下之战的序幕。

陈下之战

陈下之战，楚方是项羽亲率的主力部队，有大将锺离眜，还有属于楚的陈公（陈县令）利几等；汉方是刘邦率领出成皋追击之军，有周勃、樊哙、靳歙等将领，加上破彭城后与刘邦会合的灌婴，还有刚来投降的楚将灵常。刘邦亲率汉军从西北方来，灌婴从东方来，对驻陈的楚军形成东西夹击合围之势。交战的结果，楚军大败，陈公利几向汉方投降，汉军大胜。
项羽战败后，率残兵败将逃跑。刘贾已策反楚大司马周殷，驻守在城父，周殷以舒县的兵力屠戮了六县，与英布一同北上攻打项羽，项羽立即调转马头，转向东南方逃跑，刘贾在城父堵截项羽，此前楚军一败再败，一无粮草，二无后援，军心战心，项羽无心恋战，逃往垓下。
刘邦的大部队迅速追上，刘贾也离开城父追击项羽，周殷与英布一同追击项羽，把项羽包围在垓下。

垓下之战

前203年，项羽依照鸿沟和约率兵东归。刘邦则派人赴齐招韩信，韩信坐山观虎斗，拒不与刘邦会合。汉五年十一月，项羽离开荥阳向南逃跑，刘邦率军追击，在阳夏南打败楚军，追至固陵，刘邦止步，派刘贾攻取寿春，策反项羽的大司马周殷，攻下九江，陈下大战后与英布会合包抄项羽，刘邦追项羽到陈县，与灌婴会合，大败楚军，楚将灵常、陈公利几降汉军。项羽继续逃跑，欲前往会稽。
彭越攻下昌邑二十余城，刘贾、周殷、英布攻下城父堵截项羽，项羽逃到垓下，刘邦与刘贾、周殷、英布会合。韩信看到项羽大势已去，也前往垓下与刘邦会合。彭越也来垓下，与刘邦合兵一处。公元前202年12月，10万楚军在垓下之战中被60余万汉军打败，被围在垓下（今安徽灵璧县东南）。当日夜晚，汉军命士兵唱起楚地歌谣，楚军官兵听到四面楚歌，误以为汉军已渡江，

汉朝建立

项羽自刎后，刘邦罢韩信兵权，令灌婴率军渡江，破吴郡长于吴下（今江苏苏州），得吴守，斩首八万级，略定吴、豫章、会稽。复还定淮北，凡五十二县，楚地略定。
临江王共尉（共敖之子）忠于项羽，不肯降汉。汉遣卢绾、刘贾别将攻之，久攻不下，靳歙还兵攻临江，下之，俘临江王共尉，被杀于洛阳。楚将陈公利几以陈郡降汉，不久，利几怀疑刘邦欲诛之，于颍川反，刘邦乃率军亲征，利几兵败被杀。
项羽死后，楚国旧地皆向刘邦投降，只有鲁国不降，刘邦亲率大军想杀死他们，但考虑到鲁人守礼义，为君主死节，于是拿项羽的首级给鲁国长老们看，鲁国的父兄才投降。楚义帝曾封项羽为鲁公，项羽死后又是鲁最后投降，于是刘邦下令以鲁公之礼葬项羽于谷城，并亲为发丧，洒泪而去。
项羽之宗族皆赦而不诛，究其前功，而各封为列侯。历时四年的楚汉战争，终以刘邦取得天下，建立西汉而告终。一年后，刘邦开始消灭异姓王。