农民起义军主力是红巾军,最初的组织者和领导者是韩山童和刘福通。他们以宣传白莲教的形式进行活动。 韩山童在准备起义中被捕殉难。1351年,刘福通在颖州(今安徽省阜阳县)发动起义,起义者头裹红巾,故称红巾军。红巾军发展很快,连续攻下今河南省一些 县城,淮河流域和大江南北响应的人很多,达到十余万。
1355年,刘福通攻占了亳州(今安徽省亳县),立韩林儿为小明王,建国号为 宋。同年,顺帝下诏,富民能自集丁壮5000名者授官为万户,500名者为千户,100名者为百户。这是号召各地组织地主武装来对抗农民军。沈丘(今属河 南省)的蒙古人察罕帖木儿和罗山(今属河南省)的汉人李思齐纠集的地方武装,发展成为红巾军的顽固敌人。
1357年,刘福通分兵三 路,进行北伐。东路由苏北渡海,占领山东,进入河北,威胁大都。中路渡过黄河,进攻山西,克大同,破上都,达辽阳。西路进入陕西,连破四川、甘肃,到达宁 夏。刘福通本人于1358年攻占开封。接着,宋也迁都开封。这是北方红巾军最兴盛的时期,已把元在北方的统治力量基本打垮。但红巾军的作战,多是采取流动 形式,不大注意后方建设和各部队相互间的联系,而在胜利后又发生内部争吵,并且对于新发展起来的地主武装缺乏应有的警惕。所有这些缺点,都容易被敌人钻空 子。1362年,红巾军的三支队伍都失败了。刘福通在开封受到察罕帖木儿的围攻,撤到安丰(今安徽省寿县),于1363年力战牺牲。小明王韩林儿,为朱元 璋接到滁州(今安徽省滁县)居住。
当北方红巾军节节胜利的时候,南方的农民起义军也在摧毁元的统治,其中主要的有徐寿辉的队伍。他受 到弥勒教首领彭莹玉的推戴,于1351年在蕲州(今湖北省蕲春县)起义,后来攻占了今湖北、湖南、江西、安徽、浙江及四川等省的很多地方。1360年,徐 寿辉为部将陈友谅所害,这支队伍发生了分裂。还有张士诚的队伍,于1353年在泰州起义,攻占了高邮,后来攻占了苏州、杭州一带地区。1357年叛变降 元。徐寿辉和都属于红巾军系统,而张士诚不属于红巾军。
1352年,濠州(今安徽省凤阳县)郭子兴起兵响应刘福通。朱元璋投奔 郭子兴,得到很大的信任。1355年,郭子兴死,他就成为这支起义军的领袖。第二年,攻下集庆(今南京),并以此为根据地,逐步向外扩张。他接受了地主阶 级政治家战略家李善长、等的献策,不止要夺取元的政权,而且要统一全中国。他利用元无暇南顾的机会,首先在南方下手。1363年,朱元璋大破陈友谅。 陈友谅中流矢死。1367年消灭张士诚。他又抓住元领导集团内部纷争的时机,立即挥师北伐。第二年,朱元璋军入山东,平河南,攻占河北诸地,直逼大都。元 顺帝北逃,元亡。
红巾军的斗争口号是“摧富益贫”,要以“杀尽不平”来实现太平。这仍是北宋以来“均贫富”口号的延续,只是这时带有民族斗争的色彩。元的统治最后结束在朱元璋手里。但朱元璋在他逐步取得胜利的过程中,也就是向封建政权转向的过程中,农民起义就完全变质了。