漢王劉邦拜韓信為大將、蕭何為丞相,整頓後方,訓練人馬。西元前206年八月,漢王和韓信率領漢軍攻打關中。關中的百姓對「約法三章」的漢王本來有好感,漢軍一到,大多不願抵抗。不到三個月工夫,漢王消滅了原來秦國降將章邯等的兵力,關中地區就成了漢王的地盤。
這一來,可把西楚霸王項羽氣壞了。項羽打算發兵往西打劉邦,可是東邊也出了事,齊國的田榮轟走了項羽所封的齊王,自立為王,情況比西邊更嚴重。項羽只好先去對付齊國。
漢王劉邦趁項羽和齊國相持不下的時候,一直向東打過來,攻下了西楚霸王的都城彭城。項羽又不得不扔了齊國那一頭,趕回來在睢水上跟漢軍打了一仗。
漢軍大敗,掉在水裡淹死的不知道有多少,被俘的也不少,漢王的父親太公和妻子呂后也被楚軍俘虜了。
漢王退到榮陽、成皋(都在今河南滎陽縣)一帶,收集散兵。這時候,蕭何從關中調來一支人馬,韓信也帶著軍隊來見漢王,漢軍才又振作起來。
漢王採取以攻為守的辦法,一面守住滎陽,用少數兵力拖住項羽的軍隊;一面派韓信帶領兵馬,向北邊收服魏國、燕國和趙國。
項羽的謀士范增勸項羽把滎陽迅速攻下來。漢王十分著急。他的謀士陳平原來是從項羽那邊投奔過來的,獻了一條計策,離間項羽和范增的關係。
項羽是個猜忌心很重的人,中了反間計,真的對范增懷疑起來。范增十分氣憤,對項羽說:「天下的大事已經定了,大王自己好好幹吧。我年老體衰,該回老家了。」
范增離開滎陽,一路上又氣又傷心,就害了病,沒有回到彭城,脊樑上長了毒瘡死去。
范增一死,楚營裡再沒人替霸王出主意。漢軍受的壓力也減輕了。漢王用少數兵力在滎陽、成皋一帶牽制項羽的兵力,讓韓信繼續攻取北邊東邊,又叫將軍彭越在楚軍後方截斷楚軍的運糧道兒,使項羽的軍隊不得不來回作戰。
楚漢雙方就這樣對峙了兩年多。
西元前203年,項羽自己去攻打彭越,把手下將軍曹咎留下來守住成皋,再三囑咐他千萬不要跟漢軍交戰。
漢王見項羽一走,就向曹咎挑戰。一開始,曹咎說什麼也不出來交戰。漢王就叫兵士成天隔著汜水(流經滎陽西,汜音sì)朝著楚營辱罵。
一連罵了幾天,曹咎實在沉不住氣了,就決定渡過汜水,和漢軍拼一死戰。