楚汉战争
楚汉战争，或稱楚漢相爭，是秦朝滅亡后，项羽和刘邦之间为争夺统治权力而进行的战争。時間一般認定為前207年－前202年，秦朝滅亡之后開始，一直到項羽於烏江邊自刎結束。楚汉战争结束了秦末民變之后短暂的分裂局面，是继秦灭六国之后的又一次中国统一战争。
秦二世元年（公元前209年壬辰年），陳勝、吳廣在大澤鄉起義，天下群雄并起反秦。在此期間，陳勝的部將周章由陳縣略地至戲水附近，吳廣部下周文更是率軍打到離咸陽只有數十公里的戏地。同时，六國舊貴族也趁機反秦復國，武臣重建趙國、韓廣重建燕國，楚國貴族項梁、項羽殺死會稽郡守殷通，率領八千江東子弟兵加入起義，北上渡江作戰。不久，吳廣因內鬨被殺；陳勝也兵敗於滎陽，被叛變的車伕莊賈斬首。其後范增進言「楚雖三戶，亡秦必楚」，項梁就以重建楚國為口號，立楚懷王之孫熊心為王，也稱為「楚懷王」，史家稱為楚後懷王。同時，泗水亭亭長劉邦殺死沛縣縣令而造反，自稱「沛公」（沛縣首領），率部投奔項梁。
公元前208年，項梁在取得对秦軍的连胜后驕傲輕敵，宋義諫，但項梁不聽，導致定陶之戰战敗，項梁戰死。此战后，秦将章邯及王離认为楚军元气大伤，已构不成实质威胁，遂调转枪口，率秦軍40萬北上攻趙國，圍趙王歇於鉅鹿。楚後懷王見項梁兵敗，由盱眙遷都到彭城。趙國屢屢求救，於是楚後懷王派遣宋義为上将军、項羽和范增为副将，率軍6萬北上救趙，同時派劉邦進攻關中，楚後懷王還許諾「先入定關中者王之。」
公元前207年，宋义率军到达战场附近，但宋义懦弱无能，且想观秦赵相斗，逡巡逗留46天不进，贻误了宝贵的战机。項羽见此情形，果断殺死宋義，夺得军权，率軍破釜沉舟，與秦軍爆發鉅鹿之戰，項羽先派英布截斷秦軍糧道，再親率以楚軍为主的諸侯盟軍与秦军决戰。楚军视死如归，九战九捷，大败秦军，俘秦主帥王離，副帥涉間自焚，秦勇將蘇角被项羽亲自擊殺。
同時，劉邦領軍向西攻擊，先攻昌邑，在缺少攻城器具情況下，虽有彭越協助，仍然攻城不下。不久，酈食其投奔劉邦，建議他去攻擊陳留以奪取糧草，攻擊成功。劉邦率軍在中原戰鬥時，項羽正在追擊章邯，章邯當時糧食已缺，派別將司馬欣往求糧，被拒絕後陳餘又送信來，使得章邯猶豫不決。不久，項羽攻克三戶津，截斷章邯退路，章邯派偏軍於漳水南岸戰項羽，大敗。章邯再派軍戰於-{汙水}-（漳水的支流），又敗。章邯因得不到秦二世跟趙高的支援被困，后见大势已去，被迫在洹水南殷墟（今河南安阳）率秦軍20萬投降。巨鹿之战后，项羽声威大振，联军会师后，各路起义军将领被他的气势所震慑，甚至不敢与他直接对视。项羽由此被各路诸侯推举为上将军，统兵40万，继续反秦事业。
刘邦来到陈留西约30公里的开封，与秦大将赵贲大战，大破赵贲，三月，砀郡长刘邦自开封向北约100公里至白马擊敗楊熊奪取白馬，再降南陽，佔領武關，在藍田再破秦軍，逼近咸陽，趙高派人偷偷與劉邦商議平分關中被拒絕。同時，二世三年八月，趙高殺害秦二世，擁立子嬰為秦王，但子嬰九月即殺了趙高，取得大權。西元前207年11月，劉邦攻抵灞上，子嬰出降，秦帝国只经过了短暂的15年统一后便灭亡了。劉邦派軍據守函谷關，阻止項羽聯軍入關。不久，項羽以及諸侯40万大軍攻克函谷關，直入關中，駐兵新豐鴻門。此时刘邦只有10万兵马，只得将关中拱手相让。鴻門宴上，范增欲殺劉邦，但劉邦言詞甚懇切，項羽顧及與劉邦的結義之情與諸侯的威脅，放歸劉邦。
西元前206年2月，项羽尊楚后怀王为楚义帝，徙义帝于江南，都郴，後來又刺殺了義帝。西元前206年3月，项羽自封为西楚霸王，楚國疆域為梁楚九郡（今華東、江南大部分地區），建都彭城（江苏徐州），又分封十八路諸侯。刘邦被封为汉王，辖汉中、巴、蜀一带，建都南郑（今陕西汉中）。关中故秦之地三分，封章邯为雍王、司马欣为塞王、董翳为翟王。项羽分封诸侯后即罢兵裁軍，東归彭城。
齐國相田榮因拒隨從率军入关，故而没有得到分封。项羽把齐地一分为三，把齐王田市徙为胶东王，引起田荣对项羽封王方案极为不满，率軍驱逐齐王田都，并阻止齐王田市任胶东王。田市惧怕项羽，欲自行去胶东就封。田荣怒，追斩田市，自立為齊王。隨後，田荣再击杀济北王田安，兼并三齐之地。
赵国舊大将军陈馀与國相張耳在钜鹿之战結怨而去职，將兵權讓給张耳，归隐南皮。项羽分封时闻陈馀贤，与张耳一体有功，但未从入关，因此仅将南皮附近三县封与陈馀。陈馀见张耳为王，而自己功劳与张耳相当，却仅得南皮三县，对此十分不满。田荣兼并三齐，陈馀派夏说为使者使齐借兵。田榮又借兵給陳餘，令陳餘擊敗張耳，重迎赵王歇复为赵王。赵王歇感念陈馀，封陈馀为代王。赵王歇弱，因此陈馀不归代国，自稱趙國太傅，繼續輔赵，陈馀派夏说以代国國相身分，留守代国。
项羽分封时虽据梁國为己有，但梁地时有義軍首領彭越有众万余，彭越未从入关，故亦无分封，无所属。田荣除资助陈馀外，亦封彭越為齊國將軍，令其在梁地起兵破楚。项羽派萧公角击梁，彭越大破楚军。而在齐赵北方，故燕王韩广亦不愿徙王辽东，项羽所封之燕王臧荼击杀韩广，并王辽东。齊趙之反，使得楚國受到威脅，於是項羽決定北伐田榮。
汉元年八月，项羽闻刘邦袭取关中，于是杀韩王成，立亲信故吴令郑昌为韩王以拒汉。初项梁立韩公子成为韩王，张良为韩相国。项羽封诸侯，韩王成仍为韩王，但是项羽以张良从汉王刘邦，而韩王成又无功，故不许韩王成就国。项羽东归，韩王成被带至彭城。
项羽分封後数個月，形势就陷入一片混乱。项羽所确定的新秩序基本上被打破。同时项羽攻齐，向九江徵兵，英布不从，引发项羽不满，项羽数遣使责英布。
在齐地田荣兼并三齐之时，刘邦在汉中也为攻袭三秦做准备。刘邦入汉中，項羽給予刘邦三萬士兵。刘邦依张良计，入南鄭時燒毀棧道，以防被偷襲和向項羽示意無外侵的意願。
项羽帐下的执戟郎中韩信亦在此时從項羽軍中逃出，投靠劉邦，但没有被重用，仅任连敖，后坐法当斩为滕公夏侯婴所救。夏侯婴与之交談，知其有才能，向刘邦推荐韩信，刘邦拜韩信为治粟都尉。韩信自觉不能受到重用，欲离去另寻明主，萧何听闻后連夜苦追，人稱「萧何月下追韩信」故事。萧何再次向刘邦推荐韩信，刘邦拜韩信为大将军，统领三军。
公元前206年八月，劉邦用韓信的計謀，但受阻於陈仓，所幸趙衍指出一條小道。劉邦沿著這條小道進入關中，趁項羽北攻田榮時，突然出现在三秦旧将面前，在好疇擊潰章邯，最後圍困章邯於廢丘。隔年塞王司马欣、翟王董翳被迫向汉王刘邦投降。之后几个月，劉邦率領漢軍攻取隴西、北地、上郡。这样，三秦除章邯困守的废丘之外全部归汉。
而此时因项羽杀韩王成，张良间行归汉，派人遗书项羽，称“漢欲得關中，如約即止，不敢復東。”项羽以故無西意，而北擊齊。
刘邦略取关中时，九月，命令薛歐、王吸出武關，與王陵聯合，迎接劉太公和呂后於沛。十月，汉王拜韩王信为韓國太尉，令其循韩地，并许之若定韩地则拜其为韩王。韩信循韩地，下十余城，项羽所立之韩王郑昌降，汉二年十一月汉立韩王信为韩王。
汉二年十月，汉王刘邦进至陕（今河南陕县）。在汉基本平定关中之后，开始准备东进了。
公元前205年三月，劉邦東攻，迫降塞王司馬欣、翟王董翳、河南王申陽。劉邦渡臨晉，魏王豹率兵跟從，破河內，虜獲殷王司馬卬，南渡河，直抵雒陽。劉邦聞項羽命英布刺殺楚義帝，為義帝發喪，號召天下王公反抗項羽。
劉邦部将张良、陈平、韩信、吕泽、张耳、夏侯婴、樊哙以及五诸侯军，至外黄，击败楚将程处、王武，彭越率三万人归附刘邦，刘邦封彭越为魏国国相，攻打梁地，派樊哙北上攻打邹县、鲁县、薛县、瑕丘，以阻止项羽从齐国南下，向东攻打下邑、派吕泽驻守，下邑在萧县西面不远，萧县在彭城西面不远，项羽南下救援彭城必经萧县，这样，如果项羽回援彭城，吕泽可以与刘邦东西两面夹击项羽。与北路军曹参、灌婴会合，进攻砀县、萧县，攻取彭城。
项羽虽击败齐军，殺死田荣，但项羽暴虐，使齐地降而复叛。田榮之弟田橫立田榮之子田廣為齊王，繼續抗楚，项羽因此深陷齐地而无暇抽身。四月，劉邦與諸侯聯軍號稱五十六萬人，趁虚直捣楚都彭城。此时彭城由项羽军师范增守备，面对敌众我寡的不利态势，范增决定不死守彭城。数周后，在给予汉军以极大杀伤后，范增主动率大量楚军有生力量撤出彭城。
虽只得了一座空城，但以刘邦为首的各诸侯却以为他们取得了大胜，开始麻痹大意起来。入城后，联军日夜欢饮，军纪败坏，戒备松弛。項羽听闻这一情况，决定出奇兵制胜。他亲率精锐骑兵三萬人疾进，令士卒衔枚，马蹄裹布，由曲阜經胡陵，到蕭縣，於清晨攻擊漢軍，至中午大破漢軍。韓信等各路漢軍敗退至谷、泗水，被殲十餘萬人。楚軍一刻不停，繼續追殺，漢軍敗走，於靈壁東邊的睢水上被楚軍驅趕下河，汉军士兵光淹死的就有十數萬，使得睢水被屍體阻塞，河水一度断流。 此即公元前205年的彭城之戰。此战中，西楚霸王项羽充分利用汉军自以为人数众多，麻痹大意的弱点，只率三万精兵便击溃刘邦五十六万大军，是为中国乃至世界战争史中以少胜多之典范。
美中不足的是，彭城之战，项羽虽大胜，但田横亦复定三齐。
刘邦大败于彭城，劉邦收集散兵到下邑。父親劉太公、母親劉媼和妻子呂雉被楚軍擄為人質。諸侯見劉邦潰敗後，重新投奔項羽，連塞王司馬欣和翟王董翳也入楚為將。汉王刘邦以杀死张耳向赵国太傅陳餘結盟，陳餘发现汉王刘邦并没有杀张耳，赵兵退去反与汉为敌，汉王刘邦联盟顿时瓦解。时吕后兄周吕侯将兵居下邑。
张良亦至下邑，与刘邦于下邑规划下一步对策。张良说：“九江王黥布，楚梟將，與項王有郄；彭越與齊王田榮反梁地：此兩人可急使。而漢王之將獨韓信可屬大事，當一面。即欲捐之，捐之此三人，則楚可破也。”刘邦采纳张良建议。
劉邦在彭城之戰後，勢力一落千丈。刘邦在下邑收集散兵后，到達虞（今河南虞城县），派随何出使九江，随何成功游说九江王英布投汉。项羽不得不派龙且分兵攻打英布，牵制了项羽的后方，後汉军往彭城东南边的灵壁溃散，刘邦向西撤退，首先去了下邑与周吕侯吕泽会合，然后向南接应败兵，在砀县驻扎，战败后刘邦及时稳住阵脚，防止了大军继续溃散。刘邦驻守下邑时，马上吸引了项羽亲自来进攻。
彭城之战一个月之后，公元前205年五月，刘邦回到关中。漢軍水攻廢丘，雍王章邯在抵抗了十個月后兵敗自殺。刘邦回到栎阳，进行整顿，立刘盈为太子。时关中爆发饥荒，刘邦令关中民移民至汉中、巴、蜀。同時，英布與龍且戰爭，不得勝利，與隨何往見劉邦，楚军尽取九江。
項羽率領楚军亦追击而至，劉邦指揮諸軍並且讓灌嬰率領汉军騎兵於“京县”（今河南郑州荥阳豫龙镇京襄城村附近）、“索亭”（今河南滎陽索河街道）之間擊敗項羽統領的楚軍，将楚軍击退到滎陽以东。但最终项羽攻克并长期占领荥阳。 漢三年七月（公元前204年）劉邦為解除滎陽相持的僵局，回到滎陽前線，離開滎陽攻打楚國的後方，命令靳歙擊斷楚軍從滎陽至襄邑的糧道，命令灌嬰擊斷了楚軍從陽武至襄邑的糧道，離開滎陽，並且率領唐厲在武城擊退項羽 ，攻打楚國後方的二號大本營：魯縣，並留下御史大夫周苛，樅公、韓王信等人守滎陽，劉邦與灌嬰、靳歙、丁復等人攻打魯縣項冠的時候，漢三年八月，項羽猛攻滎陽，負責守滎陽的御史大夫周苛以魏豹是反覆之人，難與共守城，殺了魏豹
漢三年八月，项羽攻克荥阳，烹周苛、井殺樅公。
成皋之战是楚汉战争中的著名战役。关于成皋之战，、、记载矛盾，从历史地理学看，史记项羽本纪最合理。
巩义、成皋敖仓、汜水、广武（楚军曹咎部堡垒）、荥阳自西向东依次排开。项羽在拿下荥阳之后直接杀了周苛、枞公，进而拿下成皋之后，刘邦不得不渡河北走修武，项羽被汉军在巩义阻击无法再向西。而巩义就是楚汉战争楚军向西所能达到的极限。如：
又如：“汉使兵距之巩，令其不得西。”
而就在此时，项羽已经拿下额荥阳、成皋、被汉军阻击在巩义，传来了彭越击毙楚军薛公的消息，项羽放弃巩义前线，楚军退守成皋，刘邦在项羽与彭越激战之际唯一一次收复成皋，成皋在楚汉战争中仅易手一次。 也就是说，彭越先是击毙楚军将领薛公，因此项羽此一次东征刘贾、彭越联军，此时刘邦在河北、趁着项羽东击刘贾、彭越的机会引兵渡河收复成皋。 然后，也就是说项羽第一次东征击败刘贾、彭越联军，回头与已经收复成皋的刘邦在荥阳和成皋之间的广武涧对话并“伏弩射中汉王”。此时荥阳在项羽手中，成皋在刘邦手中。而此时韩信从北方“已举河北、破齐、赵，且欲击楚。”后韩信又歼灭龙且部楚军，项羽在得知韩信击毙龙且楚军后，决定第二次东征彭越，部署针对韩信的黄河防线。刘邦此时在成皋城里，利用项羽向东对付韩信、彭越的时机，一举歼灭成皋东边汜水河东岸的楚军曹咎部堡垒。成皋在汜水西，汜水东依次有楚军曹咎部堡垒、荥阳。汉军小部队东渡汜水挑战曹咎部楚军堡垒，曹咎出战，汉军佯败到汜水西，曹咎渡兵汜水向西追击汉军，楚军士卒半渡，汉军突然攻击，大破楚军。楚军大司马咎、长史兼塞王欣皆自刭汜水上。
也就是在汜水之战后，项羽决定与刘邦中分天下。
汉军北方千里包抄迂回楚军有两波，第一波是刘贾、彭越联军，第二波是韩信大军。刘贾、彭越联军从北方渡黄河击楚東阿县不太成功，换成韩信。汉分兵，韩信、曹参率军伐魏；刘邦与韩信在襄国会合，杀赵王歇。周勃、召欧等继续平定恒山、巨鹿、燕 国，燕王臧荼降汉，项羽派楚将争夺赵国，唐厉在武城打败楚军。
韩信请刘邦封张耳为赵王，刘邦同意。
刘邦兵败彭城，彭越亦亡其所下之城，率军北居河上，往来为汉游兵击楚，绝楚军粮道。汉三年五月（204年），彭越率军渡睢水，与楚将项声、薛公战于下邳（今江苏邳州古邳镇），大破楚军，杀薛公。
汉三年九月，刘邦采用郎中郑忠之策，派将军刘贾、卢绾将卒二万人、骑数百，由渡白马津，进入楚地佐助彭越。汉军与彭越联军烧掉楚军积聚的粮草，楚军乏食。楚军回击刘贾，刘贾坚守不出不与楚军交战，与彭越互相呼应。
漢二年（前205年），魏王豹藉口親人有病，重返魏地，重新歸順項羽，封鎖蒲阪，起兵反對劉邦。劉邦派出酈食其遊說，不成，派韓信曹參攻打魏國。不久，魏王豹駐兵蒲阪，堵塞臨晉。曹参以代理左丞相的身份分别与韩信各率军向东攻魏国，在东张（秦汉东张县包括蒲坂、临晋关，所以魏军主力应该在临晋关一带防守“魏王盛兵蒲坂，塞临晋”)大败孙遫的军队。曹参率军大败魏王亲自率领的军队，魏豹逃跑到武垣，被汉军活捉。取平阳，得魏王母妻子，尽定魏地，凡五十二城。劉邦赐曹參食邑平阳，安邑之战后不久，韩信與张耳被派往趙地，汉三年九月（前204年），韩信與曹參先破代兵，生擒代国丞相夏说于阏与，但刘邦很快就收回军队主力。
劉邦命令韓信與張耳繼續率兵經井陘攻打趙國。趙王歇與陳餘在井陉口部署二十萬重兵，企图阻止漢軍北上。赵将军李左車建議派三萬士兵給他，截斷韓信的糧道，陳餘率軍在前線防守，使韓信进退两难，不出十日，定能斬殺韓信和張耳。但陳餘懦弱且迂腐，自恃兵精粮足，堅持正面迎战，拒絕使用李左車的計謀。韓信得知陳餘不用李左車之計，就放心率軍出井陘，並派出两千輕騎兵，命他们手持漢軍旗幟，準備在趙軍倾巢出擊後，立刻攻佔其營寨，插上漢軍旗幟。不久，韓信在绵蔓河畔設背水陣，詐敗誘敵，陈馀中计，大笑韩信不懂兵法，命趙軍猛攻背水陣。漢軍知道已无退路，人人拼死作戰，趙軍不能打敗漢軍，只好撤退，但漢軍两千騎兵已經攻佔敵營，插上漢旗，回撤的趙軍见状，一溃千里。漢軍乘勝夾擊追殺，大破趙軍，斬殺陳餘於泜水上，俘虜趙王歇、李左車。此为汉三年十月（属前204年）。
与此同时，刘邦亦亲攻赵。汉将靳歙兵出河内，击赵将贲郝于朝歌，破之。又随刘邦进击安阳以东，下七县；别将攻赵军，虏两司马，得赵军二千四百余人。接着刘邦对赵之邯郸发起进攻，破赵军，攻下邯郸。汉将靳歙破赵军于平阳，攻下邺。这样赵国悉平。刘邦与韩信在襄国会合，杀赵王歇。周勃、召欧等继续平定恒山、钜鹿、燕国，燕王臧荼降汉，项羽派楚兵攻擊赵国，唐厉在武城打败楚军。
汉灭赵之战的过程是，韩信与曹参受刘邦的命令，先破代国，杀夏说，把赵国的注意力转向赵国北部，派韩信与张耳在井陉设疑兵，利用地理优势吸引赵军主力，刘邦自己亲自率兵，趁虚直取邯郸。当赵国失去邯郸，襄国危急，陈馀进退两难，此时韩信与张耳出井陉，攻杀了陈馀。赵王歇逃到襄国，刘邦与张耳、韩信南北夹击襄国，攻破襄国会合，杀赵王歇，平定赵国。后来汉军又平定了巨鹿、常山郡，招降了燕国。韩信张耳继续平定赵国余寇，刘邦、靳歙、周勃、曹参等返回敖仓，此前英布被龙且与项声打败，与随何归汉，此时英布正式归降刘邦，这时汉营调走他旗下的兵到荥阳抵抗楚军。
韓信當時向東攻擊，尚未渡過平原津時，劉邦已經派出酈食其往齊國說齊王。韓信於是打算停止進兵。但由范陽來的蒯通認為酈食其一介書生，竟能憑三寸不爛之舌說下齊國七十多座城池，恐怕韓信的功勞比不上酈食其。於是韓信跟從他的計謀，襲擊齊國。當時齊王見劉邦已經派出酈食其，所以安心下來，把歷下的守軍撤走。 韓信率兵攻打历城，齐国叛汉，攻打楚国后方的靳歙与丁复不得不停止进攻，回到前线，刘邦派灌婴、曹参、陈武等支援韩信，攻打齐国 灌婴、曹参等到达齐国，攻下历城，齐王逃往高密，向项羽求救，项羽派龙且援齐汉四年十一月，陈武军，蔡寅军，丁复军，王周军，陈涓等汉军杀齐王田广、龙且，齐相田横自立为齐王，灌婴在嬴县打败田横，田横投奔彭越，曹参留在齐国继续平定齐国頑軍。
同時，項羽見龍且敗死，遂派武涉去遊說韓信投楚或中立，蒯通也建議韓信應該自立門戶，但全部被韓信拒絕。於是武涉離開，蒯通裝瘋逃去。韓信遂坐镇齐地。
韩信拒绝武涉游说以及蒯通建议后，自己坐镇齐国，同時劉邦命令灌婴对楚直接发起进攻。
灌婴率汉军首先进攻楚的鲁地，大破楚将薛公杲于鲁北。南下再破薛郡长，攻博阳，进军至下相，夺取取虑、僮、徐等县。接着渡过淮河，进至广陵（今江苏扬州），尽降楚之城邑。但项羽很快派项声、薛公、郯公夺回淮北。灌婴回师复渡淮，在下邳大破项声、郯公军，斩薛公，夺取下邳。接着追击楚军，破楚军于平阳（南平阳，今山东邹城市），回师还攻并占领彭城，虏楚柱国项佗降留、薛、沛、酇、蕭、相。攻苦、譙，再次俘获亚将周兰。
灌婴平淮北后，与刘邦军会师于颐乡（位于今河南鹿邑县）。
张良、陈平建议撕毁鸿沟和议，趁楚军疲师东返之机自其背后发动追歼。张、陈二人认为：“汉有天下太半，而诸侯皆附之。楚兵罢食尽，此天亡楚之时也”，建议“不如因其机而遂取之”。刘邦遂聽张良、陈平的建议，趁楚军锐气消磨殆尽的退兵路上发起追击。彭越趁项羽向南撤退到阳夏之机，攻克昌邑旁二十多个城邑，缴获谷物十多万斛，用作汉王的军粮。刘邦亦趁機率军发起追歼，於汉五年十月（按：这时以十月为岁首）击败項羽親率楚军取得阳夏（今河南太康），樊哙虏楚大将周将军卒四千人。
刘邦率领汉军追击项羽至固陵，项羽为了摆脱汉军，发动反击攻打刘邦。刘邦在各路汉军没到的情况下，为避免不必要的损失，选择高壁深垒防守战，為接下来的反击战做准备。刘邦另派刘贾南渡淮水包围寿春，刘贾很快到达，派人寻找机会招降楚大司马周殷。周殷叛变楚王，帮助刘贾攻下九江，迎着武王黥布的军队在垓下会合，断项羽向南逃后路，並共同攻打项羽。不久，灌婴、靳歙率领骑兵军团从彭城往固陵而来，刘邦亲自在固陵东边颐乡与灌婴率领的汉军铁骑会合。项羽得知灌婴、靳歙等率领汉军东来后，为防自己被包围往南退守至陈下，刘邦在灌婴、靳歙率领精锐骑兵到来后，发动反攻。汉将宣曲侯义率领骑兵和汾阳侯靳强率汉军为先锋，攻固陵楚军，便击破了楚大将钟离昧的部队，揭开了陈下之战的序幕。
陳下之战，楚方是项羽亲率的主力部队，有大将锺离眜、还有属于楚的陈公（陈县令）利几等；汉方是刘邦率领出成皋追击之军，有周勃、樊哙、靳歙等将领，加上破彭城后与刘邦会合的灌婴，还有刚来投降的楚将灵常。刘邦亲率汉军从西北方来，灌婴从东方来，对驻陈的楚军形成东西夹击合围之势。交战的结果，楚军大败，陈公利几向汉方投降，汉军大胜。 项羽战败后，率残兵败将逃跑。刘贾已策反楚大司马周殷，驻守在城父，周殷以舒县的兵力屠戮了六县，与英布一同北上攻打项羽，项羽立即调转马头，转向东南方逃跑，刘贾在城父堵截项羽，此前楚军一败再败，一无粮草，二无后援，军心战心，项羽无心恋战，逃往垓下。
刘邦的大部队迅速追上，刘贾也离开城父追击项羽，周殷与英布一同追击项羽，把项羽包围在垓下。
前203年，项羽依照鸿沟和约率兵东归，刘邦则派人赴齐招韩信，韩信坐山观虎斗，不与刘邦会合。汉五年十一月，项羽离开荥阳向南逃跑，刘邦率军追击，在阳夏南打败楚军，追至固陵，刘邦止步，派刘贾攻取寿春，策反项羽的大司马周殷，攻下九江，陈下大战后与英布会合包抄项羽，刘邦追项羽到陈县，与灌婴会合，大败楚军，楚将灵常、陈公利几降汉军。项羽继续逃跑，欲前往会稽。
彭越攻下昌邑二十余城，刘贾、周殷、英布攻下城父堵截项羽，项羽逃到垓下，刘邦与刘贾、周殷、英布会合。韩信看到项羽大势已去，也前往垓下与刘邦会合。彭越也来垓下，与刘邦合兵一处。公元前202年12月，10万楚军在垓下之战中被60余万汉军打败，被围在垓下（今安徽灵璧县东南）。当日夜晚，漢軍命士兵唱起楚地歌谣，楚军官兵听到四面楚歌，误以为汉军已渡江，乃士氣崩潰。項羽率八百騎乘夜向南突圍，渡過淮水後，身邊只剩百餘騎。漢軍至黎明時才發覺項羽脫逃，由漢將灌嬰率五千騎追殺。楚軍一度迷路，在東城（今安徽省滁州市定遠縣南）被追上。幾度衝突後，項羽身邊僅剩26人，烏江（今安徽省馬鞍山市和縣烏江鎮）亭長建議他前往江東，但項羽自覺起兵有八千江東子弟追隨，今日孤身而還，無顏見江東父老，不願過江，不久，漢軍數千騎追至，項羽令二十六騎下馬步戰，斃殺漢軍五百餘人後，乃揮劍自刎而亡。
项羽自刎后，劉邦罷韓信兵權，令灌婴率军渡江，破吴郡长于吴下（今江苏苏州），得吴守，斬首八萬級，略定吳縣、豫章、会稽。复還定淮北，凡五十二縣，楚地略定。
临江王共尉（共敖之子）忠於項羽，不肯降漢。汉遣卢绾、劉賈别将攻之，久攻不下，靳歙还兵攻临江，下之，俘临江王共尉，誅於洛阳。楚将陈公利几以陈郡降汉，不久，利幾懷疑劉邦欲誅之，於潁川反，劉邦乃率軍親征，利幾兵敗被殺。
项羽死后，西楚的領土皆向刘邦投降，只有鲁國不降，刘邦集結了天下重兵想屠滅他们，楚义帝曾封项羽为鲁公，劉邦考虑到鲁人守礼义，为君王死节，于是拿项羽的首級给魯國長老們看，魯國長老見項羽已死，已不可能效忠，才投降劉邦。项羽生前曾擔任魯公，死後魯國為項羽堅守到最後一刻，于是刘邦下令以鲁公之礼把项羽首級葬於穀城（今山東省泰安市東平縣），并亲为发丧，哭泣洒泪而去。
项羽之宗族皆赦而不诛，究其前功，而各封为列侯，以告慰楚人。历时四年的楚汉战争，終以刘邦取得天下，建立西汉而告终。一年後，劉邦開始消滅異姓王。
電影︰
電視劇︰
动画︰
京剧剧目︰
歌剧︰
漫画︰
文学作品︰
電子遊戲：