公元前209年,陳勝、等900余人被派往漁陽(今北京密雲縣西南)戍邊。途中在祁縣(今安徽宿州市東南)大澤鄉被大雨耽擱。按照秦朝的法律,凡是遲到到達目的地的,壹律處死。情急之下,陳勝、率領駐軍發動反秦起義,各地紛紛響應。
起義軍推舉陳勝為王,在陳縣建立張楚政權,以為隊長,以秦始皇長子傅肅、已去世的楚將軍項燕的名義號召群眾反秦。這支義軍成為秦朝的頭號對手。
起義軍向西進攻,很快進入關中,逼近秦都鹹陽。秦二世慌了,趕緊派將軍張寒釋放在驪山辛苦勞作的俘虜和奴隸,並組建軍隊反擊起義軍。周聞叛軍孤軍奮戰,最終失敗。光武在滎陽被他的人殺死了。半年後,陳勝兵敗身亡。
秦二世元年(公元前209年)九月,項梁、項羽殺了吳(今江蘇蘇州)會稽郡太守,號召楚國遺民起來反抗秦國。項梁、項羽率領八千兵渡河北上,勢如破竹,連敗秦軍。秦二世派張寒率軍鎮壓,項梁死在定陶。
後來圍攻趙叛軍,項羽率領數萬楚軍(後來軍閥叛軍也參戰了),在巨鹿與秦名將、王力率主力四十萬決戰。項羽破釜沈舟,在諸侯國軍隊裹足不前的情況下,以大無畏的精神率先攻陷秦軍,驅使諸侯國軍隊最終剿滅王離軍,並在8個月後又迫使20萬張寒和秦軍投降。從此,項羽在各路義軍中確立了領導地位。壹戰後,秦朝主力盡失,名存實亡。
劉邦從沛縣的流氓做起,後來做了小官吏。陳涉、光武起義,劉邦也起義占領沛縣,投靠強大的項梁。項梁很欣賞劉邦,給了他五千人馬。劉邦逐漸建立了自己的勢力。
項羽和秦軍以打為主,而劉邦在張亮、李詩琪等人的建議下,采取投降的辦法,壹路小抵抗,打到鹹陽城下。秦朝最後壹個皇帝子嬰不得不投降。
劉邦能夠先攻鹹陽,原因如下:
光武起義,陳勝消耗了秦朝的實力,到處都是起義軍,秦朝無力應付;
40萬秦軍主力在河北與項羽作戰,劉邦在進入關中的過程中沒有強有力的對手;
劉邦聽從了張亮等謀士的建議,采取投降的方法避免戰鬥;
秦朝內亂時,趙高殺了胡亥,另立子嬰,子嬰掌權後又殺了趙高。
劉邦本在項梁手下,項羽巨鹿之戰後,確立了在各國起義軍中的領導地位。因此,秦國死後,項羽成了楚的霸主,封天下。
然而不久,劉邦等人造反,拉開了楚漢鬥爭的大幕。