脱脱在高邮前线被贬后,元朝统治集团更加腐朽不堪,内部倾轧,军阀混战,终于到了不可收拾的地步。哈麻因阴荐西番僧“演揲儿”(意为“大喜乐”)法,深受元顺帝妥欢贴睦尔所宠,继任中书左丞相,弟雪雪拜御史大夫,妹婿秃鲁帖木儿亦受宠。顺帝终日过着荒淫无耻的生活,“怠于政事,荒于游宴”,国家大权尽归哈麻兄弟。哈麻、雪雪阴谋废顺帝,立皇太子爱猷识理达腊,并杀秃鲁帖木儿等。事泄,反被顺帝、秃鲁帖木儿定计杀掉。顺帝命搠思监为右丞相、太平为左丞相。皇太子生母奇皇后与爱猷识理达腊仍谋废立,令宦官朴不花与左丞相太平商议,太平不肯,于是宫廷内分为支持皇太子的搠思监、朴不花一派和支持顺帝的老的沙、秃鲁帖木儿一派。
元末农民起义爆发后,元军在起义军打击下土崩瓦解。但依靠地主武装起家的察罕帖木儿、答失八都鲁、李思齐、张良弼等逐渐崛起,形成了新的军阀集团。答失八都鲁在北方红巾军的打击下兵败病死,其子孛罗帖木儿继之察罕帖木儿死后,其养子扩廓帖木儿继之。这四家军阀出于争权夺利,长期以来互相攻伐不已。皇太子为了控制朝政,以扩廓帖木儿为外援,老的亏李沙等则依靠孛罗帖木儿来对抗。
至正二十四年,右丞相搠思监、朴不花指责孛罗帖木儿图谋不轨,于是就下诏削其官爵,解其兵权。孛罗帖木儿拒不从命,遣秃坚帖木儿出兵大都,顺帝不得已将搠思监、朴不花缚送给他,并复其官爵。皇太子很不甘心,命扩廓帖木儿出兵攻打孛罗帖木儿,孛罗帖木儿又出兵攻大都,皇太子战败,逃奔冀宁。孛罗帖木儿人大都,顺帝命孛罗为中书右丞相,节制天下军马,老的沙为销哪迟平章政事,秃坚帖木儿为御史大夫。二十五年,皇太子下令扩廓帖木儿讨孛罗帖木儿,孛罗战败。七月,孛罗帖木儿被刺死于宫中,余党被杀。九月,皇太子和扩廓帖木儿入京,命扩廓帖木儿为中书左丞相。奇皇后要扩廓逼顺帝让位,扩廓不从,请求带兵外出。闰十月,顺帝封扩廓为河南王,代皇太子总制关、陕、晋、鲁诸道兵马,出征南方。但李思齐不服。二十七年,李思齐、张良弼、孔兴、脱列伯等结成联盟,与扩廓交战。十月,顺帝罢扩廓兵权,其原统军兵由白琐住、虎林赤、貊高等分别统率。另立抚军院,由皇太子总制天下兵马,专防扩廓。这时朱元璋即将北伐,元朝行将灭亡。
朱元璋领导的统一战争至正十二年,定远富豪郭子兴于濠州(今安徽凤阳东北)起义。朱元璋原是郭子兴部亲兵,以战功升为总兵。郭死后,升任左副元帅。十五年,收降部分巢湖水师,渡长江东进。十六年,据集庆,宋政权任命他为江南行省左丞相。屡败陈友谅、张士诚,势力扩展至苏、浙、皖、赣。
至正二十三年,陈友谅特制数百艘“楼船”,兵号六十万,包围洪都(今江西南昌),守将朱文正率军死守八十五天。七月,朱元璋亲率二十万大军来救,陈友谅退至鄱阳湖迎战,这就是著名的鄱阳湖大缓御战。陈友谅大败,中流矢死。二十四年正月,朱元璋称吴王。二月,朱元璋率水陆大军征武昌。陈友谅子陈理请降。汉亡。至正二十六年五月,朱元璋发布《平周檄》。这篇檄文虽然仍用大宋“皇帝圣旨”和“龙凤”年号,却完全站在地主阶级立场上污蔑红巾军。八月,朱元璋令徐达为大将军、常遇春为副将军,率军二十万攻张士诚。徐达等先后攻占湖州、杭州、绍兴、嘉兴等地,形成对平江的包围。十一月,开始围攻平江,四周筑长围以困之。吴元年(1367)九月,城破,张士诚被俘,自缢死。
吴元年九月,朱元璋灭张士诚后,遣军分两路进攻方国珍。十一月,方国珍投降。同月,又派军南下征陈友定。陈友定本为驿卒,因袭击红巾军有功,官至福建行省平章,占有闽中八郡,一直效忠元朝,与朱元璋为敌。次年正月,朱元璋即皇帝位,建国号为明,年号洪武。同月,明兵攻取建宁,进围延平,陈友定被俘,福建平定。接着,两广也为明朝所有。
正当元朝统治下的北方处在军阀混战的时候,吴元年十月,朱元璋命中书右丞相徐达为征虏大将军、平章常遇春为副将军,率军二十五万北伐。他再三申明行军纪律,又发布了北伐檄文,提出“驱除胡虏,恢复中华,立纲陈纪,救济斯民”的口号。根据朱元璋的作战部署,徐达率军先抵淮安,攻占山东全境。洪武元年三月,徐达等进入河南,同时,由冯宗异率领的偏师克陕州,扼潼关,西略华州,以防李思齐等援兵东犯。五月,朱元璋抵汴梁,准备进军大都。闰七月,明兵会集德州,步骑舟师继续沿运河北上,下长芦,克清州,至直沽,大都震惊。七月二十八日,当明军占领通州后,元顺帝率后妃、太子逃到上都。八月初二,徐达率北伐明军进入大都,元朝政权被推翻。时扩廓帖木儿拥兵山西,李思齐、张良弼等盘踞陕西,纳哈出据守辽阳。九月,徐达、常遇春等进兵山西。十二月,扩廓帖木儿乘北平(明改大都为北平)空虚,率军出雁门关企图夺取北平,徐达等直取太原,又偷袭扩廓兵营,扩廓大败,仅以十八骑逃遁,太原失陷,山西平定。洪武二年四月,常遇春、冯宗异等率军入陕西,李思齐投降。常遇春、李文忠又率军直捣上都,元顺帝再往北逃,次年四月病死于应昌。