楚汉战争

背景

秦二世元年（公元前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餘萬漢軍打敗，被圍在垓下（今安徽靈璧縣東南）。當日夜晚，漢軍命士兵唱起楚地歌謠，楚軍官兵聽到四面楚歌，誤以為漢軍已渡江，

漢朝建立

項羽自刎後，劉邦罷韓信兵權，令灌嬰率軍渡江，破吳郡長於吳下（今江蘇蘇州），得吳守，斬首八萬級，略定吳、豫章、會稽。復還定淮北，凡五十二縣，楚地略定。
臨江王共尉（共敖之子）忠於項羽，不肯降漢。漢遣盧綰、劉賈別將攻之，久攻不下，靳歙還兵攻臨江，下之，俘臨江王共尉，被殺於洛陽。楚將陳公利幾以陳郡降漢，不久，利幾懷疑劉邦欲誅之，於潁川反，劉邦乃率軍親征，利幾兵敗被殺。
項羽死後，楚國舊地皆向劉邦投降，只有魯國不降，劉邦親率大軍想殺死他們，但考慮到魯人守禮義，為君主死節，於是拿項羽的首級給魯國長老們看，魯國的父兄才投降。楚義帝曾封項羽為魯公，項羽死後又是魯最後投降，於是劉邦下令以魯公之禮葬項羽於穀城，並親為發喪，灑淚而去。
項羽之宗族皆赦而不誅，究其前功，而各封為列侯。歷時四年的楚漢戰爭，終以劉邦取得天下，建立西漢而告終。一年後，劉邦開始消滅異姓王。