朱元璋南下袭取和州(安徽马鞍山和县),击败十万元军,随后攻破长江防线,杀入江南。郭子兴病死。朱元璋接任起义军都元帅,率领起义军进攻集庆(江苏南京)。
张士诚在朱元璋之后也渡江南下,杀向东部沿海地区。
刘福通挥军北伐。“刘福通遣将分略河南、山东、河北,京师大震”。妥欢帖睦尔急忙调兵遣将阻击刘福通。元军在太康(河南周口太康县)击败刘福通,“斩首数万”。
刘福通改变打法,分兵三路,以运动战反围剿。西路军杀向关中。中路军取道山西杀向上都。东路军取道山东杀向大都。元军被迫分兵围追堵截。
河南压力减轻,刘福通趁虚而入杀向汴梁。汴梁守军兵力薄弱,守将弃城而逃。刘福通轻取汴梁,把小明王接来,以汴梁为新首都。
汴梁是宋朝古都。红巾军建立宋国,以汴梁为都大有继承正统的意味。
刘福通之后便留在汴梁修都城、修宫殿,没有全力以赴继续北伐。
先前派出去的三路北伐军孤军奋战,先后失利。
西路军杀入关中,一度杀至长安城下,但遭到元军的反扑后溃败。
中路军洞穿山西杀入上都,将上都焚毁后又东进辽东打败了高丽(朝鲜)。高丽王弃城而逃,红巾军占领了高丽都城开京(朝鲜开城)。占领高丽后,红巾军看到满城的花姑娘忘了自己是干嘛来的了,就地成家不走了。高丽王不久后发起反攻。老丈人、小舅子忽然翻脸,把红巾军从姑娘炕上拖下来一刀砍了。残余红巾军狼狈逃过鸭绿江跑回国内,不想又撞上元军,只好举手投降。
东路军横扫山东一直打到大都的家门口蓟州(天津蓟县)。妥欢帖睦尔吓得不轻,急召四方勤王。勤王军未到,起义军已经杀至漷州(北京通县漷县镇)。妥欢帖睦尔吓得要去“北巡”,被手下死拉活劝才留下来。所幸柳林(北京通州区牛堡屯村)一战,起义军战败撤走,妥欢帖睦尔才稳住心神。
东路红巾军回到山东后重新建立起根据地。这时,芝麻李的部将赵君用率部来投红巾军。红巾军的首领毛贵原先是赵君用的手下,见赵君用落难来投自然不能拒绝。谁承想赵君用却包藏祸心,伺机杀死毛贵,企图吞并东路军独霸山东。毛贵的部将率军报仇,杀了赵君用。山东起义军从此陷入内讧,开始自相残杀。
红巾军三路北伐大军先后失败,实力大损。
但是红巾军北伐也重创了蒙古人的军力。同时,红巾军逼近大都,焚毁上都,也重创了蒙古人的心理。
元军精锐损失殆尽。妥欢帖睦尔现在能依仗的只剩下察罕帖木儿和李思齐两支部队。
察罕帖木儿是居住在颍州(安徽阜阳颍州区)的色目人。祖上随蒙古军队攻陷河南,之后便留在颍州为官。红巾军起义后,察罕帖木儿自己组织了一支军队配合元军与红巾军作战。因为屡立战功,察罕帖木儿不断升官,官至平章事。他的军队也不断扩充,成为元军的主力部队。
李思齐是罗山(河南信阳罗山县)的大地主。红巾军杀到罗山时,他组织了一帮人去和红巾军作战。红巾军为吸引贫苦百姓闹革命,喊出“摧富益贫”的口号,每到一地就开始打土豪分土地。地主豪富纷纷组织军队自卫。李思齐的军队就是其中的一支地主武装。后来也因为战功,李思齐被封为兵部尚书。
红巾军三路北伐时,察罕帖木儿和李思齐奉调进关。他们在陕西联手挫败了红巾军的西路军。西路军残余投降了李思齐。
红巾军的东路军进逼大都时,他俩又奉诏勤王,率军进驻河北。红巾军南撤后,元军也趁机发动反攻。
1359年,察罕帖木儿水陆并进围攻汴梁。刘福通屡次出战都被察罕帖木儿击败,只得死守不出。
经过数月苦战,汴梁弹尽粮绝。察罕帖木儿趁机对汴梁发动总攻,一举攻克汴梁。刘福通在城陷之时率领数百骑兵保护着小明王突围而出,逃往安丰(安徽淮南寿县)。
元军重新占领了河南。察罕帖木儿率军转战山东。
李思齐这时已经完全控制了关中。西路军的残余投降了李思齐。李思齐随即进攻四川,在嘉定(四川乐山)击败明玉珍。
明玉珍是徐寿辉的部将。他随徐寿辉杀入湖北,率军逆江而上去巫峡筹粮。有情报说重庆守备空虚,他率军偷袭得手,占领了重庆。随后他以重庆为基地派兵四出扩张地盘,攻克成都、嘉定、兴元(陕西汉中)等地,最终占领了整个四川。
徐寿辉的部将陈友谅杀了徐寿辉自立为帝。明玉珍不能接受陈友谅以臣弑君,自立为王,与陈友谅划清界限。
1361年,察罕帖木儿趁山东起义军内讧,与外甥扩廓帖木儿兵分两路夹攻山东。起义军抵挡不住元军的攻势,节节败退。红巾军将领田丰和王士诚献城投降。只有益都(山东潍坊青州市)死战不降。察罕帖木儿围住益都日夜攻打。
益都旦夕可下。就在这时候,先前投降察罕帖木儿的田丰和王士诚又后悔了,决定反叛察罕帖木儿。两人设计将察罕帖木儿请到自己的大营,一刀刺死,然后率军投奔益都。
扩廓帖木儿接管了察罕帖木儿的军队,发誓为察罕帖木儿报仇。他身先士卒率军攻城,一举攻陷益都。城陷之后,他把红巾军全部杀死,把田丰和王士诚的心挖出来祭奠察罕帖木儿。
这个扩廓帖木儿的父亲是汉人。他还有一个汉人名字叫王保保。
王保保据守黄河稳定住局势,把起义军限制在南方。