有人勸沛公說:“秦地比天下富足十倍,地勢好。如今聽說章邯投降了項羽,項羽就給了雍王的封號,稱王於關中。現在即將來到關中就國,恐怕不能占有這個地方了。應趕快派兵把守函穀關,不讓諸侯軍進來,逐漸征集關中兵,以加強實力,抵抗諸侯兵。”沛公讚成,照著做了。十一月間,項羽果然率領諸侯軍西進,想要入關,而關門閉著。聽說沛公已平定關中,大怒,派黥布等攻破函穀關。十二月間,到達戲水。沛公左司馬曹無傷聽說項王發怒,要攻打沛公,派人告訴項羽說:“沛公想要稱王關中,令子嬰為相,珍寶被他全部占有了。”打算以此求得封賞。亞父勸項羽進攻沛公。當時項羽飽餐士卒,準備第二天會戰。這時項羽兵四十萬,號稱百萬。沛公兵十萬,號稱二十萬,兵力敵不過項羽。恰巧項伯要救張良,夜間去見他。(回來後,)用道理勸說項羽,項羽取消了進攻沛公的計劃。沛公帶來了一百多騎兵,馳至鴻門,來見項羽,表示歉意。項羽說:“這是你沛公左司馬曹無傷向我說的。不然,我項羽怎麼能做這樣的事。”後來沛公在樊噲的幫助下,得以脫身返回。回來後,立刻殺了曹無傷。
項羽向西進軍,屠殺無辜,焚毀鹹陽秦宮室,所過之處,無不遭到摧殘破壞。秦地的百姓大失所望,心裏恐懼,不敢不服從。
項羽派人回去報告楚懷王,楚懷王說:“按照原來的約定辦。”項羽怨恨楚懷王不肯讓他與沛公一起西進入關,而派他北上救趙,在天下諸侯爭奪稱王關中的約定中落在後麵。他就說:“懷王這個人,我家項梁所立,沒有什麼功勞,憑什麼主持約定。本來安定天下的,是諸位將領和我項籍。”就假意推尊楚懷王為義帝,事實上不聽從他的命令。
正月,項羽自立西楚霸王,在梁、楚地區的九個郡稱王,建都彭城。背棄原來的約定,改立沛公為漢王,在巴、蜀、漢中稱王,建都南鄭,把關中瓜分為三,封立秦朝的三個將領:章邯為雍王,建都廢丘,司馬欣為塞王,建都櫟陽,董翳為翟王,建都高奴。封楚將瑕丘申為河南王,建都洛陽。封趙將司馬為殷王,建都朝歌。趙王歇遷徙代地稱王。封趙將張耳為常山王,建都襄國。封當陽君黥布為九江王,都六縣。封楚懷王柱國共敖為臨江王,建都江陵。封番君吳芮為衡山王,建都邾縣。封燕將臧荼為燕王,建都薊縣。原來的燕王韓廣遷徙遼東稱王。韓廣不服從,臧荼攻殺韓廣於無終。封成安君陳餘河間三縣,住在南皮。封給梅十萬戶。四月,在項羽旄麾之下罷兵散歸,諸侯各自回到封國。
漢王回國,項王派兵三萬跟隨,楚國和其他諸侯國的士卒仰慕漢王而追從的有幾萬人。他們從杜縣南麵進入蝕中,離開後就燒斷棧道,以防備諸侯軍和匪徒的襲擊,也向項羽表明沒有東進的意圖。到達南鄭,那些將領和士卒很多在中途逃亡回去,士卒都唱歌表示思念回到東方。韓信勸漢王說:“項羽封諸將有功的為王,而大王獨自被封在南鄭,這實際上是貶徙。軍中官吏和士卒都是崤山以東的人,日夜跋踵盼望回家鄉。乘他們氣勢旺盛時加以利用,可以建立功業,等到天下已經平定,人人都自然安下心來,就不能再利用了。不如向東進軍,爭奪天下大權。”
項羽出了函穀關,派人遷徙義帝。說:“古代做帝王的統轄千裏見方的土地,必須居住上遊。”就派使者把義帝遷徙到長沙郴縣,催促義帝快走。群臣漸漸地背叛了義帝,項羽就暗地裏讓衡山王、臨江王襲擊他,把義帝殺死在江南。項羽怨恨田榮,封齊將田都為齊王。田榮惱怒,於是自立為齊王,殺死田都,反叛項楚,把將軍印給予彭越,讓他在梁地起兵反楚。楚派蕭公角攻打彭越,彭越大敗蕭公角。陳餘怨恨項羽不封自己為王,派夏說遊說田榮,借兵攻打張耳。齊借兵給陳餘,擊敗了常山王張耳,張耳逃跑歸附了漢王。陳餘從代接回趙王歇,又立為趙王,趙王就封陳餘為代王。項羽大怒,出兵北向擊齊。
八月,漢王用韓信的計策,從故道回軍,襲擊雍王章邯。章邯在陳倉迎擊漢軍,雍王兵敗退走,在好畤停下來接戰,又失敗了,逃到廢丘。漢王隨即平定了雍地。向東到達鹹陽,率軍圍困雍王於廢丘,而派遣將領攻占了隴西、北地、上郡。派將軍薛歐、王吸出武關,借助王陵駐紮在南陽的兵力,迎接太公、呂後於沛縣。楚聽到這一消息,出兵在陽夏阻擋,漢軍不能前進。楚讓原吳縣縣令鄭昌為韓王,抵抗漢軍。
二年,漢王東出略取城邑,塞王司馬欣、翟王董翳、河南王申陽都投降了。韓王鄭昌不願歸附,漢王派韓信打敗了他。於是設置了隴西、北地、上郡、渭南、河上、中地各郡,關外設置了河南郡。改立韓太尉信為韓王。將領中以一萬人或一郡投降的,封給一萬戶。整修河上郡內的長城。各處原來的秦朝苑囿園池,都讓百姓開墾耕種。正月,俘虜了雍王的弟弟章平。大赦有罪的人。
漢王出函穀關到達陝縣,撫慰關外父老,回來後,張耳來見,漢王給了他優厚的待遇。
二月,下令廢掉秦社稷,改立漢社稷。三月,漢王從臨晉關渡過黃河,魏王豹率兵跟從,攻下河內,俘虜殷王,設置河內郡。向南渡過平陰津,到達洛陽。新城三老董公攔住漢王,用義帝死這件事遊說漢王。漢王聽了,袒臂大哭,為義帝發喪,哭吊三天。派遣使者通告諸侯說:“天下共同擁立義帝,對他北麵稱臣。現在項羽把義帝放逐,擊殺於江南,大逆無道。我親自為他發喪,諸侯都要穿白色喪服。全部調發關內的兵力,征集三河的士卒,浮江漢南下,願意跟隨各諸侯王討伐楚國殺害義帝的人。”
當時項王北進攻打齊國,田榮在城陽交戰。田榮兵敗,逃到平原,平原的百姓殺了他,齊地都投降了楚國。楚兵焚燒齊人的城郭,擄掠他們的子弟和女人,齊人又反叛楚國。田榮的弟弟田橫立田榮的兒子田廣為齊王,齊王在城陽反楚。項羽雖然聞知漢軍東進,但既然已與齊軍交戰,就想擊垮齊軍之後迎擊漢軍。漢王利用這個機會劫取了五諸侯的兵力,進入彭城。項羽聽到這一消息,就帶兵離開齊,由魯地出胡陵,抵達蕭縣,與漢軍在彭城靈壁東麵的睢水上激戰,大敗漢軍,殺死了很多士卒,由於屍體的堵塞,睢水都不能流動了。楚軍從沛縣擄取了漢王的父母妻子,放在軍中作為人質。這個時候,諸侯看到楚軍強盛,漢軍敗退,又都離漢歸楚。塞王司馬欣也逃到楚國。
呂後的哥哥周呂侯為漢帶領一支軍隊,駐紮在下邑。漢王到他那裏,漸漸收集士卒,駐軍於碭縣。漢王西行經過梁地,到了虞縣,派謁者隨何到九江王黥布那裏,漢王說:“你能讓黥布舉兵叛楚,項羽必定留下來攻打他。如能滯留幾個月,我一定可以取得天下。”隨何去說服九江王黥布,黥布果然背叛楚國,楚國派龍且去攻打他。
漢王兵敗彭城向西撤退,行軍中派人尋求家屬,家屬也逃走了,互相沒有碰見。戰敗後就隻找到了孝惠帝,六月,立他為太子,大赦罪人。命令太子駐守櫟陽,諸侯國人在關中的都集中在櫟陽守衛。引水灌廢丘,廢丘投降,章邯自殺。把廢丘改名為槐裏。於是命令祠官祭祀天、地、四方、上帝、山川,以後按時致祭。征發關內士卒登城守衛邊塞。
這時九江王黥布與龍且作戰,沒有取勝,和隨何潛行歸漢。漢王漸漸地征集了一些士卒加上各路將領和關中兵的增援,因此軍勢大振,在京、索之間擊破了楚軍。
三年,魏王豹請假回去省視父母的疾病,到了魏地就斷絕了黃河渡口,叛漢歸楚。漢王使酈生勸說魏豹,魏豹不聽。漢王派遣將軍韓信進攻魏豹,大破魏軍,俘虜了魏豹,於是平定了魏地,設置了三個郡,名叫河東、太原、上黨。漢王命令張耳和韓信向東攻下井陘,進擊趙地,殺了陳餘、趙王歇。第二年,封張耳為趙王。
漢王駐軍在滎陽南麵,修築甬道與黃河相連,以便取用敖倉的糧食。與項羽對峙了一年多。項羽多次奪取了漢軍甬道,漢軍缺少糧食,項羽於是圍攻漢王。漢王請求講和,劃分滎陽以西的土地歸漢。項王沒有同意。漢王憂慮,就采取陳平的計策,給陳平黃金四萬斤,離間楚國君臣。於是項羽對亞父產生了懷疑。亞父這時勸項羽乘勢攻下滎陽,等到他知道已被懷疑,就很生氣,推托自己年老,要求引退,回家鄉當老百姓。項羽答應,亞父沒有到達彭城就死了。
漢軍絕糧後,就在夜間從東門放出女子二千多人,披戴鎧甲,楚軍便四麵圍擊。將軍紀信乘坐漢王的車駕,偽裝成漢王,欺騙楚軍。楚軍都高呼萬歲,爭赴城東觀看,因此漢王能夠與幾十騎兵出西門潛逃。漢王命令禦史大夫周苛、魏豹、樅公留守滎陽,將領和士卒不能隨從的,都留在城中,周苛、樅公商量說:“魏豹這個叛國之王,和他共守城池很難。”於是殺死了魏豹。
漢王逃出滎陽進入函穀關,收集士卒,想再次東進。袁生勸漢王說:“漢楚在滎陽相持了幾年,漢軍常處於困境,希望君王從武關出去,項羽肯定引兵向南行進,君王深溝高壘,讓滎陽、成皋之間得到休息。派韓信等安輯黃河以北的趙地,聯合燕、齊,君再赴滎陽,也為時不晚。這樣,楚軍多方設防,軍力分散,漢軍得到休整,再與楚軍作戰,一定可以打破楚軍了。”漢軍采納了他的計策,出兵宛縣、葉縣之間,與黥布在進軍中收集兵馬。
項羽聽說漢王在宛縣,果然帶兵南下。漢王堅壁固守,不和他交戰。這時彭越渡過睢水,與項聲、薛公戰於下邳,彭越大敗楚軍。於是項羽率軍向東攻打彭越,漢王也引兵向北駐軍成皋。項羽已經取勝,趕走了彭越,得知漢軍又駐紮在成皋,就又領兵西進,攻克滎陽,殺了周苛、樅公,俘虜了韓王信,於是進圍成皋。
漢王逃亡,單身一人與滕公同乘一輛車出了成皋玉門,向北渡過黃河,馳至修武住了一夜。自稱為使者,早晨馳入張耳、韓信的營中,奪取他們的軍隊,就派張耳去北邊趙地更多的收集兵力,派韓信東進攻齊。漢王得到韓信的軍隊,軍威再振。率軍來到黃河岸邊,向南進發,在小修武南麵讓士卒吃飽喝足,打算與項羽再一次交戰。郎中鄭忠勸阻漢王,讓他深溝高壘,不要和項羽交鋒。漢王采用了鄭忠的計策,派盧綰、劉賈率兵兩萬人,幾百個騎士,渡過白馬津,進入楚地,與彭越在燕縣城西又打敗了楚軍,隨後又攻下梁地十多座城邑。
淮陰侯接受命令向東進軍,在平原沒有渡過黃河。漢王派酈生去說服齊王田廣,田廣叛楚,與漢講和,一起攻打項羽。韓信采用蒯通的計策,突然襲擊,打敗了齊國。齊王烹殺了酈生,向東逃到高密。項羽聽到韓信已經全部利用黃河以北的兵力打垮了齊、趙,而且要攻打楚軍,就派龍且、周蘭前去阻擊。韓信與楚交戰,騎兵將領灌嬰配合出擊,大敗楚軍,殺了龍且。齊王田廣投奔彭越。此時,彭越領兵駐紮梁地,往來騷擾楚軍,斷絕它的糧食。
四年,項羽對海春侯大司馬曹咎說:“謹慎防守成皋。如果漢軍挑戰,千萬小心,不要應戰,隻要阻止漢軍東進就行了。我十五天一定平定梁地,再與將軍會合。”於是就進軍攻打陳留、外黃、睢陽,都拿了下來。漢軍果然屢次向楚軍挑戰,楚軍不肯出戰。漢軍派人辱罵了五六天楚軍,大司馬十分氣憤,讓士卒渡過汜水。士卒渡過一半,漢軍出擊,大敗楚軍,全部繳獲楚國的金玉財寶。大司馬曹咎、長史司馬欣都自刎在汜水上。項羽到達睢陽,聽到海春侯兵敗,就帶兵返回。漢軍正在滎陽東麵圍攻鍾離,項羽一到,全部撤走到險阻地帶。
韓信打垮齊國之後,派人對漢王說:“齊國靠近楚國,如果權力太小,不立為暫時代理的國王,恐怕不能安定齊地。”漢王想要攻打韓信。留侯說:“不如就此封他為王,讓他自己防守齊地。”漢王便派遣張良帶著印綬立韓信為齊王。項羽聽到龍且的軍隊戰敗了,心裏很恐懼,派盱眙人武涉前去遊說韓信。韓信不肯聽從。
楚、漢長期相持,勝負未決,年輕力壯的苦於當兵打仗,年老體弱的疲於轉運糧食。漢王、項羽一同站在廣武澗兩邊對話。項羽想跟漢王單身挑戰。漢王曆數項羽的罪過說;“最初我和你項羽都受命於懷王,說是先入關平定關中的,就在關中做王。違背約定,讓我在蜀、漢做王,這是第一罪。假借懷王的命令,殺了卿子冠軍,而自尊為上將軍,這是第二罪。已經援救了趙地,應當返回複命,而你擅自脅迫諸侯的軍隊進入函穀關,這是第三罪。懷王約定到了秦地不要殘暴掠奪,火燒秦朝宮室,挖掘始皇帝的墳墓,私聚秦朝財物,這是第四罪。殺掉了秦朝投降的國王子嬰,這是第五罪。在新安,用欺騙的手段坑殺秦朝子弟二十萬,而封他們的將領做王,這是第六罪。讓自己的將領都在好地方做王,而遷走原來的諸侯王,使臣下爭為叛逆,這是第七罪。項羽把義帝驅逐出彭城,自己建都彭城,奪取韓王的土地,合並梁、楚稱王,多劃給自己土地,這是第八罪。派人在江南暗殺義帝,這是第九罪。為人臣下而殺害君主,屠殺已降之人,執政不公允,主持約定不守信用,為天下人所不容,大逆不道,這是第十罪。我帶領正義之師隨從諸侯來誅除殘暴的賊人,派受過刑的罪人殺死你項羽,我何苦與你挑戰!”項羽大怒,埋伏的弓弩射中了漢王。漢王胸部受傷,卻摸著腳說:“這個賊人射中了我的腳趾!”漢王身受創傷,臥床不起,張良請漢王勉強起來巡行慰勞士卒,以安定軍心,不讓楚軍乘機取勝於漢。漢王出來巡視軍隊,傷勢加重,就驅車進入成皋休養。
漢王病愈,向西進入函穀關,來到櫟陽,慰問父老,設酒招待。砍了塞王司馬欣的腦袋,掛在櫟陽街市上示眾。停了四天,又回到軍中,駐紮在廣武。關中的兵力大舉出動。
當時,彭越帶兵駐紮梁地,來來往往地騷擾楚軍,斷絕它的糧食。田橫前往依附彭越。項羽多次攻打彭越等人,齊王韓信又進攻楚軍。項羽恐懼,就與漢王約定,平分天下,割鴻溝以西歸漢,鴻溝以東歸楚。項王送回漢王的父母妻子,漢軍高呼萬歲,楚軍告別漢軍回到了駐地。