元惠宗在位之初,1335年燕帖木儿的儿子唐其势阴谋推翻,另立元文宗义子答剌海。幸右丞相伯颜粉碎叛乱,但属于保守派的他掌握朝政,权力盛大。他禁止汉人参政并取消科举,这些都与元惠宗发生冲突。1340年元惠在伯颜之侄脱脱的帮助下,终于废黜伯颜。脱脱为相与元惠宗亲政前期,采取了一系列改革措施如颁行《至正条格》等法规,以革新政治,缓和社会矛盾,史称至正新政。1343年元惠宗下令修撰《辽史》、《金史》、《宋史》三史,由右丞相脱脱(后改由阿鲁图)主持,两年后修成。然而元惠宗后期怠于政事,以至于在1350年发生天灾人祸后引来民变。
元朝长期处于继承权问题、贪污、权臣擅政、不任用汉人与压榨百姓的恶习,使得政治总是无法上轨。这种不稳定的朝廷如果又遇到天灾人祸的干扰,往往导致国家的覆没。元朝后期,特别是1340年代中后期至1350年代期间,干旱、瘟疫与水灾时常发生,黄河地区水患尤其严重。与此同时,元廷不断收取各种赋税,使百姓的生活更加艰苦,使得白莲教逐渐流行,并成为对抗元廷的势力。早在1325年就发生过河南赵丑厮、郭菩萨领导的武装起事。1338年江西袁州(今江西宜春)彭和尚、周子旺等白莲教徒起义失败,彭和尚逃至淮西。1350年元廷下令变更钞法,铸造“至正通宝”钱,并大量发行新“中统元宝交钞”,导致物价迅速上涨。隔年元惠宗派贾鲁治黄河,欲归故道,动用民夫十五万,士兵二万。而官吏乘机敲诈勒索,造成不满。
民变纷起
白莲教首领韩山童、刘福通等人决定在5月率教众起事,但事泄,韩山童被捕杀。刘福通再立韩山童之子韩林儿杀出重围,指韩山童为宋徽宗八世孙,打出“复宋”旗号,以红巾为标志。其后郭子兴于安徽濠州起事,芝麻李等人占领徐州,此为东系红巾军。西系红巾军方面,彭莹玉、邹普胜与徐寿辉在湖北蕲州起事,国号天完。红巾军势力遍布河南江北、江南、两湖与四川等地,还有非红巾军的张士诚等部的起事,民变揭开元朝灭亡的序幕。
元廷派兵镇压各地红巾军,丞相脱脱亲自率军南下攻陷徐州芝麻李军,一度压制民变军。然而脱脱在1354年南攻高邮张士诚军之际,被元廷大臣弹劾而功亏一篑。徐寿辉部最后分裂成两湖的陈友谅与四川的明玉珍。两淮郭子兴的部下朱元璋于1356年以南京为根据地开始扩充地盘;1363年与据有两湖的陈友谅作战,最后于鄱阳湖之战获得胜利;1365年占领两湖后于同年冬东进攻打据有江苏沿海的张士诚;1367年平定张士诚后,继续南下压制浙江的方国珍,至此江南无一人反抗朱元璋。另外,福建于1357年至1366年间发生色目军乱,史称亦思巴奚兵乱。与此同时,元朝在察罕帖木儿和李思齐等率领元军反击北方红巾军,1363年北方红巾军最后在安丰之役中败给降元后的张士诚,刘福通战死,韩林儿南下投奔朱元璋,随后被杀。
朱元璋统一江南后于1367年下令北伐,他派徐达、常遇春率明军分别攻打山东与河南,并且封锁潼关以防止关中元军进援中原。明军于1368年八月攻陷元大都,元惠宗北逃,史书称此为元朝结束之年。然而元廷仍在上都,往后史书称之为北元。而明廷认为元惠宗顺天明命,谥号为元顺帝。
北元时期
北元地图1368年元廷退回蒙古草原,元惠宗退至上都,隔年又至应昌。他继续使用“大元”国号,史称北元。当时北方除了元惠宗据有漠南漠北,关中还有元将扩廓帖木儿驻守甘肃定西,此外元廷还领有东北地区与云南地区。明太祖为了占领北方,采取兵分二路,各个击破的方式,此即第一次北伐。元惠宗战败后于1370年在应昌去世,元昭宗即位后北逃至漠北和林。明将冯胜夺取了甘肃地区。然而元将扩廓帖木儿仍然在漠北多次与明将徐达等人作战。明太祖曾多次写信招降,但扩廓帖木儿从不理会,被朱元璋称为“当世奇男子”。1378年四月,元昭宗去世,继位的元天元帝继续和明朝对抗,屡次侵犯明境。
至于北元领有的东北地区与云南地区方面:1371年,元朝辽阳行省平章刘益降明,明朝占领辽宁南部。然而其余东北地区仍由元朝太尉纳哈出控制,纳哈出屯兵二十万于金山(今辽宁省昌图金山堡以北辽河南岸一带),自持畜牧丰盛,与明军对峙了十几年,多次拒绝明朝的招抚。1387年冯胜、傅友德、蓝玉等人发动第五次北伐,目标是攻占纳哈出的金山。经过多次战争,1387年10月,纳哈出投降蓝玉,明朝占领东北地区。镇守云南的元朝梁王把匝剌瓦尔密,在元廷退回草原后仍然继续忠效之。1371年明太祖派汤和等人领兵平定据有四川的明玉珍,并且劝降梁王未果。1381年12月,明军攻入云南,1382年梁王逃离昆明并自杀,随后明军攻克大理,明军平定云南地区。
明太祖为了彻底扫除北元势力,于1388年5月命蓝玉率领明军十五万发动第六次北伐。明军横跨戈壁至捕鱼儿海(今中蒙边境之贝尔湖)击溃元军,俘虏八万余人,元天元帝和他的长子天保奴逃走,但是幼子地保奴被明军擒住,至此北元国势大衰。1388年元天元帝被阿里不哥后裔也速迭尔杀害,北元不再使用年号。1402年鬼力赤杀元帝坤帖木儿后后改国号为鞑靼,北元亡.