秦二世三年,十月(前208年11月25日至12月23日期間。秦時歷法,以十月為歲首,九月為歲末)劉邦由碭縣率軍西征,沿途還收了不少之前陳勝和項梁的散兵遊勇。當他領兵到了成陽縣時(今菏澤城東北六十裡胡集村東),劉邦先是在成武縣(今山東菏澤市東南)南面攻破了東郡郡尉所率領的守衛部隊。然後又在成陽縣南面攻打秦將王離的軍隊,兩軍在杠裡(屬東郡的成陽縣,在今山東省菏澤市牡丹區東)形成對峙。之後劉邦攻破了秦二軍,還有河間的守軍。劉邦率領著曹參、樊噲、灌嬰、傅寬、郭蒙等將領去與王離交戰,這一仗更是大敗王離。此戰之後,章邯便讓王離和涉間去包圍巨鹿,而章邯自己則是駐軍在他們南面,修築甬道用來來輸送粟米糧食。
這裡咱們先介紹一下王離,王離是戰國四大名將之一的王翦的孫子,通武侯王賁的兒子,自己被封為武城侯,也算是秦末的一位秦國名將。之前是蒙恬的裨將,蒙恬北逐匈奴的時候,他駐兵在上郡。在胡亥、趙高和李斯陰謀篡位逼公子扶蘇自殺,囚殺蒙恬後,蒙恬的兵馬胡亥便交給王離統領。在陳勝吳廣起義之後,胡亥便下令讓他收復趙國。
劉邦在大敗王離之後,繼續引兵西進。在路過昌邑縣(今山東巨野)的時候遇到了,昌邑本地的彭越率著聚集的人馬趕來幫助他,與他一起攻打昌邑縣,但是呢沒能打下來,所以劉邦就讓彭越繼續留在巨野澤之中招募魏國的散兵遊勇,而自己領兵返回栗縣。要麽是劉邦是真命天子呢,自帶主角光環。這不在回栗的時候遇到一個侯爵叫剛武侯(叫啥名已經失傳了),就給劉邦送福利了。自己領著軍隊過去讓劉邦給吞並了,給劉邦送了四千多人。在這期間,又遇到了魏國將軍皇欣和申徒武蒲,於是又跟他們合軍回去打昌邑去了,結果還是沒能拿下來,劉邦又使出了他攻打定陶時的辦法,打不下那就不打了。他放棄了攻打昌邑,領著軍隊向著高陽縣(今河南杞縣西南)繼續西進了。
另一方面楚懷王拜宋義擔任北上救援趙國的主帥拜上將軍,封項羽為魯公,為次將,范增為末將,率軍五萬北上巨鹿救援趙國。當時趙國將領陳余經常去趙地常山郡招募兵馬,招募到了幾萬人馬,駐軍在巨鹿城北面。章邯駐軍在巨鹿城南面的棘原,修築甬道通往黃河,輸送糧餉給王離。王離的軍糧充實,加緊攻打巨鹿城。巨鹿城中糧食消耗殆盡兵力也減少,張耳多次派人召集陳餘前來,陳餘覺得自己兵力太少,打不過秦軍,不敢前去救援。陳余原先和張耳是刎頸之交用現在的話說就是生死兄弟,現在張耳被困巨鹿,見陳余見死不救,張耳聽說後大罵陳余背信棄義。陳余才派了五千兵馬過去救援,結果無異於以卵擊石,這五千兵馬全軍覆沒了。
話說宋義帶著大隊人馬到了安陽,就停下了。他尋思著先讓趙軍跟秦軍先打累了,他再上去收拾秦軍。所以呢,宋義就下令大軍在安陽扎營休整,這一休整就足足休整了四十六天。在這期間還經常和齊國有書信往來。項羽找到宋義,建議說:“秦軍把趙軍圍在巨鹿城中,咱們現在引兵渡河過去,和趙軍成內外夾擊之勢必然可以大破秦軍。”宋義就是不聽,還經常在軍中飲酒作樂。由於當時已經是天寒地凍,又下起了大雨,士兵們現在是又冷又餓。項羽看到這種情況,第二天早上又去宋義的大帳中找宋義,二話沒說就把他給宰了還順手把他兒子宋襄也一並給發配到閻王那去了。項羽提著宋義頭顱出來對眾將士喊道:“宋義想要勾結齊國,密謀造反,懷王已經暗中令我將他斬殺了”。眾將一看這陣勢,也是後脊背發涼,也都屈服於項羽,都推舉項羽暫時代為上將軍。項羽讓桓楚將這邊的事情報告給楚懷王熊心,楚懷王也只能做個順水人情任命項羽為上將軍了。
項羽殺了宋義之後,那是名聲大噪,威震楚國,聞名諸侯。於是項羽派英布和蒲將軍率領兩萬士兵渡過漳水河,多次攻打章邯給王離輸送糧食的甬道,但是沒有斷絕甬道,對秦軍的影響都不大。正在這時候北邊的陳余正好派人來請求項羽再次發兵,項羽於是讓全部人馬一起渡過漳水,而且燒掉了帳篷,每人隻帶三日口糧,過河之後還把船也鑿沉了。以此向士卒表示一定要決死戰鬥,毫無退還之心。楚軍士氣大振,個個視死如歸以一當十,與章邯保衛甬道的部隊大戰大敗秦軍,徹底切斷了王離的糧道。當時,楚軍戰力之強絕對是位列諸侯之首,前來援救巨鹿的諸侯各軍築有十幾座營壘,沒有一個敢發兵出戰。到楚軍攻擊秦軍時,諸侯們也都只是在壁壘之上觀望。看到楚軍將士以一當十,殺聲震天,諸侯軍人人心驚膽戰。
秦二世三年十二月(公元前207年1月23日至2月20日期間)項羽率軍在巨鹿城下大破秦軍,擊敗章邯,章邯引兵退走,這時候各路諸侯才敢出兵攻擊圍攻巨鹿的秦軍。這時候的秦軍已經是兵敗如山倒了,各自潰散。此戰中,秦將蘇角被殺,涉間不願投降,**而死。到秦二世三年正月,項羽俘虜了王離,這一仗最終以楚軍大勝告終。大破秦軍後,項羽在轅門召見諸侯將領,諸將無不跪著前來,不敢仰視項羽。於是項羽這個上將軍不再只是楚國的上將軍而是成了諸侯的上將軍,諸侯也都歸附於他。
到了秦二世三年二月(前 207年)章邯在巨鹿城下戰敗後,率軍退到漳水另一邊去駐軍在棘原,與楚軍形成了對峙。但是這時候的秦軍,剛吃完一場大敗仗,已經是士氣低落敗象漸漸顯露出來了。再加上章邯最近日子過得很是不舒服,連吃敗仗使得朝廷震怒,秦二世派人來對章邯進行了問責。這讓章邯很害怕,於是章邯就讓長史司馬欣回朝廷去請示公事。司馬欣到了鹹陽,被滯留在宮外的司馬門呆了三天,趙高就是不接見他,明顯是心有不信任之意了。長史司馬欣非常害怕,趕快奔回棘原軍中,都沒敢順原路走,趙高果然派人追趕,沒有追上。司馬欣回到軍中,向章邯報告說:“趙高在朝廷中獨攬大權,下面的人不可能有什麽作為。如今仗能打勝,趙高必定嫉妒我們的戰功。打不勝,我們更免不了一死。希望您認真考慮這情況!”勸章邯早做打算。這時候趙國的將領陳余也給章邯寫了一封書信,信中說道:“白起為秦國南面攻下了楚國,北面打敗了趙國趙括,攻城略地無數,最後還是被賜死了。蒙恬北抗匈奴,擴地千裡最終也是被殺害在了陽周。這是為什麽呢?就是因為他們戰功太多,不可能一一封賞,所以就從法律上找借口把他們殺了。如今將軍您作為秦將已經三年了,士兵損失以十萬計,而各路諸侯蜂擁而起,越來越多。而趙高只會阿諛奉承,如今形勢危急,他也怕秦二世殺了他呀,所以他會找借口殺了將軍您來推卸責任。將軍您在外時間長久,朝廷裡跟您有嫌隙的人也就多了,既然有功也是被殺,無功也是被殺。而且如今形勢,是上天要滅秦,這是誰都明了的事情。將軍您在內不能直言進諫,在外已成亡國之將,孤自一人支撐著卻想維持長久,難道不可悲嗎?將軍您不如率兵掉轉回頭,與諸侯聯合,訂立和約一起攻秦,共分秦地,各自為王,南面稱孤,這跟身受刑誅, 妻兒被殺相比,哪個上算呢?”。章邯收到這封信後猶豫不決,秘密派遣他的軍候始成去找項羽,想要和項羽訂立和約。但是和約沒談成,項羽就讓蒲將軍領兵,日夜兼程渡過三戶津在漳水南邊與秦軍交戰,再次擊敗秦軍。之後項羽又率領全軍在汙水大破章邯的秦軍。章邯沒辦法又再次派人去見項羽,想要訂立和約。項羽這邊呢,因為軍中糧食已經所剩不多了,所以也就答應了和約。
秦二世三年,七月。章邯和項羽在桓水南岸的殷墟訂立了盟約。再見到項羽後,章邯那是聲淚俱下,跟項羽說著這趙高是如何如何的罪惡滔天,殘害忠良。項羽安慰了他,立他為雍王,暫時先安置在楚軍營中。又封司馬欣為上將軍,率領投降過來的秦軍為先行部隊。到了新安(今河南洛陽市西部)的時候,因為之前的諸侯軍士兵大多都是徭役,沒少受秦兵大罵。現在秦兵投降了,這些諸侯兵也就以牙還牙把秦兵當作奴隸來驅使。秦軍官兵很多人私下議論:“章將軍騙我們投降了諸侯軍,如果能入關滅秦還好;如果不能,到時諸侯軍就會俘虜我們退回關東,而秦朝廷必定會把我們父母妻兒全部殺掉。”諸侯軍得知這些議論,便報告給了項羽。項羽召集黥布、蒲將軍商議道:“秦軍官兵人數仍很多,他們內心裡還不服,如果到了關中不聽指揮,事情就危險了,不如把他們殺掉,隻帶章邯、司馬欣、董翳進入秦地。”於是楚軍趁夜把秦軍二十余萬人擊殺坑埋在新安城南。秦朝滅亡後,項羽分封諸王,封章邯為雍王,稱王於鹹陽以西,建都廢丘。