元朝从成宗以后,又传了九个皇帝,皇室内部斗争十分激烈,政治也越来越腐败,人民灾难深重。最后一个皇帝元顺帝(又叫元惠宗)妥懽帖睦尔即位后,荒淫残暴,闹得国库空虚,物价飞涨,百姓忍受不下去,很多地方爆发了农民起义。
河北有个农民叫韩山童,他祖父是个教书先生,曾经利用传教的形式,暗地组织农民反抗元朝,被官府发现,充军到永年(今河北邯郸东北)。韩山童长大以后,继续组织白莲会(一种秘密宗教组织),聚集了不少受苦受难的农民,烧香拜佛。韩山童对他们说:现在天下大乱,佛祖将要派弥勒佛下凡,拯救百姓。这个传说很快就传到河南和江淮一带,百姓们都盼望着有那么一天,弥勒佛真会下凡来。
正巧在这个时候,黄河在白茅堤决口,又碰上接连下了二十多天大雨,洪水泛滥,两岸百姓遭受严重水灾。有人向朝廷建议,把决口的地方堵住,另外在黄陵冈(今山东曹县西南)开挖河道,疏通河水。公元1351年,元王朝征发了汴梁(今河南开封)、大名等十三路民工十五万和兵士两万人,到黄陵冈开河。
修河工程开始了。民工们在烈日暴雨下,被迫日日夜夜没命地干活,可是朝廷拨下来的开河经费,却让治河的官吏克扣了去。修河的民工连饭也吃不饱,怨声载道。
韩山童决定抓住这个机会,发动群众。他先派几百个会徒去做挑河民工,在工地上传播一支民谣:
“石人一只眼,挑动黄河天下反。”
民工们不懂这歌谣是什么意思,但是听到里面有“天下反”三个字,就觉得好日子快要到来了。开河开到了黄陵冈,有几个民工挖呀挖呀,忽然挖出一座石人来。大家好奇地聚拢来一瞧,只见石人脸上正是一只眼,不禁呆住了。这件新鲜事又很快地在十几万民工中传开来,大家心里都想,民谣说的真的应验了,既然石人出来,天下造反的日子自然来到了。
不用说,这个石人是韩山童事先偷偷地埋在那里的。
百姓被鼓动起来了。韩山童有个伙伴刘福通,对韩山童说,现在元朝压迫百姓那么厉害,百姓还想念着宋朝。如果打起恢复宋朝的旗帜,拥护的人就会更多。韩山童很赞成这个主张,就跟大家宣布,说韩山童本来不姓韩,而是姓赵,按辈分排起来,还是宋徽宗的第八代孙子;刘福通也是南宋大将刘光世的后代。他们说得那么有鼻子有眼睛,百姓们听了,也不由不信。
韩山童、刘福通挑选个日子,聚集了一批人,杀了一匹白马,一头黑牛,祭告天地。大家推韩山童做领袖,号称“明王,并约定日子,在颍州颍上(今宏徽阜阳、颍上)起义,用红巾裹头作为起义军的标记。正在歃血立誓的时候,有人走漏了消息。官府派兵士把韩山童抓去,押到县衙门杀了。韩山童的妻子带着他儿子韩林儿,逃脱了官府追捕,到武安(今河北武安)躲了起来。
刘福通逃出包围,把约定起义的农民召集起来,攻占了颍州等一些据点。原来在黄陵冈开河的民工得到消息,也杀了河官,纷纷投奔刘福通的队伍。因为起义兵士头上裹着红巾,当时的百姓把他们称做红军,历史上把它称做红巾军。不到十天,红巾军已经发展到十多万人。
元王朝听到刘福通声势浩大,吓慌了神,赶忙调动了六千名色目人组成的阿速军和几支汉军,镇压红巾军。阿速军本来是元王朝的一支精锐的队伍,但是那时候,已经十分腐败,将领们只知道喝酒享乐,兵士们到处抢劫。一碰上红巾军,还没交锋,主将带头挥着鞭子,骑马向后逃奔,嘴里还不停地叫喊着:“阿卜,阿卜!”(阿卜是走的意思。)下面的兵士一看主将临阵脱逃,也都四散逃窜。
过了一个月,刘福通的红巾军又连续攻下了一批城池。江淮一带的农民早就受到白莲会的影响,听到刘福通起义,纷纷响应,像蕲水(今湖北浠水,蕲音qí)的徐寿辉,濠州(今安徽凤阳)的郭子兴,都打起红巾军的旗号起义。也有不打红巾军旗号的,像江苏北部的张士诚。
公元1354年,元顺帝派丞相脱脱集中了诸王和各省人马,动用了西域、西番的兵力,号称百万,围攻占领高邮的张士诚起义军。高邮城被围得水泄不通。起义军正在危急的时候,元王朝突然发生内乱。元顺帝下令撤掉脱脱的官爵。百万元军失去了统帅,不战自乱,全军崩溃。
元军溃散以后,刘福通的北方起义军趁机出击,大破元军。第二年二月,刘福通把韩山童的儿子韩林儿接到亳州(今安徽亳县)正式称帝,国号叫宋。韩林儿被称为小明王。
韩林儿、刘福通在亳州建立政权以后,分兵三路,出师北伐。西路军由李武、崔德率领,进攻陕西、甘肃、宁夏、四川;东路军由毛贵率领,从山东、河北,直逼元朝京城大都;中路军由关先生、破头潘等率领,从山西打到辽东,配合东路军攻打大都。
三路北伐军都取得很大的进展。毛贵的东路军一直打到元大都城下。刘福通亲自率领大军攻占了汴梁,把小明王韩林儿接到汴梁,定为都城。红巾军声势浩大,元王朝大起恐慌,纠集地主武装加紧镇压,三路北伐军先后失利,汴梁又落在元军手里。元王朝又用高官厚禄招降了张士诚,刘福通保护小明王逃到安丰(今安徽寿县)后,受到张士诚的袭击,公元1363年,刘福通在战斗中牺牲。北方起义军经过十二年的战斗,终于失败。