公元前210年,秦始皇第五次出巡,病死途中,其次子胡亥夥同內侍趙高與丞相李斯密謀篡改遺囑,賜死於上郡戍邊的始皇長子扶蘇和大將蒙恬,並立胡亥為秦二世。
胡亥繼位後,其統治之殘酷,較秦始皇有過之而無不及,導致民不聊生,怨言載道。期間,驪山刑徒英布逃到江中稱盜,彭越率眾落草鉅野澤,泗水亭長劉邦隱於碭山。直到公元前209年七月,陳勝、吳廣於戍邊途中殺官起義,在大澤鄉正式掀起反秦旗幟。
陳勝、吳廣由大澤鄉出發,攻占蘄縣後,兵分兩路,陳勝率領一路義軍西行,符離人葛嬰領兵東進,兩路兵馬勢如破竹,迅速佔領宿縣、拓城等5個縣城。陳勝在陳城自立為王,號“張楚”。於陳城立定腳跟後,陳勝分兵西、北、南三路出擊,南路鄧宗攻打九江郡;北路武臣、張耳、陳餘渡過黃河攻打魏國舊地;西進的部隊又分為三路:假王吳廣攻打滎陽;宋留由南陽直叩武關;周文直搗秦都咸陽。
周文率領義軍攻至咸陽附近的戲水,秦二世才如夢初醒,接納少府章邯的建議,以驪山修墓的數十萬刑徒武裝起來對抗義軍。周文由於孤軍深入,被章邯擊敗,退出函谷關,於曹陽固守抵抗。然而在此期間,武臣所率領的北路義軍攻占邯鄲後,脫離了陳勝的指揮,自立為王,拒不增援周文,反而進軍河北,擴張自己的勢力範圍。周文在孤立無援的情況下,苦守近三個月,兵退澠池,終於在澠池被章邯全殲,周文自刎身亡。
章邯消滅周文,一路殺向義軍中心陳城。十二月,陳城失守,陳勝率殘眾經由汝陰撤退,途中陳勝的御者莊賈暗殺了陳勝,投降秦軍。
在陳勝起義之後,楚國後裔項羽與其叔項梁亦在吳中舉旗響應,於公元前208年,項羽率八千江東子弟渡江西向攻秦。攻至下邳,各地分散的義軍紛紛集中於項羽的旗下。項羽舉兵的同時,劉邦也在沛縣高舉義旗,攻占秦國豐縣,但當劉邦率主力外出時,豐縣的守將雍齒投降,劉邦回攻豐縣不下,向在薛城駐守的項梁借兵五千,終於將豐縣奪回。
此時,陳勝的死訊傳來,項羽手下范增老謀深算,勸項羽立楚國之後來號召群眾,項羽找到楚懷王的孫子心,立為領袖,成為繼陳勝之後的新一位領袖。
公元前208年七月,項梁於東阿和濮陽兩次打敗章邯,同時,劉邦、項羽西攻雍丘,劉邦部下曹參擊斃李斯之子李由,打敗秦兵。隨後項梁再次於定陶大破秦軍。項梁屢勝心驕,被章邯出奇兵夜襲得手,奪回定陶,項梁也死於亂軍之中。章邯平定定陶後,揮兵直撲河北,將河北義軍困於鉅鹿,形式岌岌可危。楚懷王馬上派宋義、項羽北上救援,劉邦則率軍西進,直搗關中。
項羽不滿宋義不顧大局,殺而代之,渡江後破釜沉舟,同秦軍九戰九勝,殺死秦將蘇角、王離。與秦軍主力對壘鉅鹿,章邯求援無效,終於在公元前207年七月率二十萬秦軍投降。
劉邦所率領的西行部隊所到之處,守將紛紛投降,使義軍長驅直入攻至武關。趙高驚懼,殺死秦二世,立子嬰為王,向劉邦請和,劉邦拒絕,率兵攻入武關,進至藍田,聽從張良計策,誘降守關秦將,於藍田大破秦兵。子嬰誘殺趙高時,劉邦的兵馬已經駐於霸上,子嬰向義軍投降,秦朝正式覆滅。