在河南地面上,元朝正规军被刘福通打得落花流水的时候,一些支持元王朝的民军武装却逐渐发展起来,其中最著名的就是察罕帖木儿和李思齐的部队。
察罕帖木儿祖上为畏吾儿人,其曾祖父于元朝初年迁居中原,定居颖州沈丘,察罕帖木儿本人曾为沈丘探马赤军。李思齐为信阳罗山人,原为罗山县典史。罗山被红巾军占据后,他们组织当地豪杰,组成“义军”袭占了罗山城。元朝政府对此大加褒奖,授察罕帖木儿为汝宁府达鲁花赤,李思齐为知汝宁府,这支武装迅速成为附近反红巾武装的旗帜,史称“所在义士俱将兵来会”。这是当时河南一带对红巾军威胁最大的一支元朝军事力量。至正十五年,元王朝再度调集大军包围刘福通,以察罕帖木儿、李思齐、答失八都鲁等部为机动兵力,准备一举消灭河南红巾军。
为统一号召红巾军各部,刘福通于当年二月将韩山童之子韩林儿由砀山迎到亳州,立为皇帝,因红巾军以兴复故国为号召,故国号“宋”,改元“龙凤”。又因韩山童曾自称“明王”,故韩林儿又被称作“小明王”,以符“明王出世”之意。龙凤政权以杜遵道、盛文郁为丞相,罗文素、刘福通为平章,刘六知枢密院事。杜遵道随即被刘福通所杀,从此刘福通成为龙凤政权的实际领袖。根据地建设上,龙凤政权则陆续设立了行中书省和府、县地方行政机构;军事方面逐步设立了行枢密院,统辖各地的统军元帅府、管军总管府、管军万户府等,向上则统属于枢密院。军职则自统军元帅、总管、万户、千户到百户有差。
刘福通等人建立了龙凤政权后,还顺手拆掉了鹿邑县的太清宫,把建筑材料运到亳州,为小明王建了一座宫阙。当下既然是弥勒、明尊当道,也就怨不得道士们倒霉了。
这一年的六月,元朝以答失八都鲁为河南行省平章事,统率太不花等一应诸王藩将兵马,许以便宜行事,进攻刘福通。九月,答失八都鲁与刘福通在许州的长葛野战,元军战败。答失八都鲁收兵退往中牟,立足还未稳,又遭刘福通轻骑劫营,再次战败,辎重尽失,连其子孛罗帖木儿也被红巾军生擒。但红巾军的胜利也不够彻底,他们随后遭到元将刘哈剌不花的伏击,非但抢来的辎重易手,自己还倒贴了不少,高级俘虏孛罗帖木儿也趁机逃跑——不过这个俘虏的逃走,对元王朝来说似乎也不算是一件幸运的事。在元王朝最后的岁月里,正是他和扩廓帖木儿争权夺利甚至兵戎相见,断送了残元最后一点希望。总的来说,这一阶段双方互有攻守,红巾军略占上风,但元军也逐渐顽强起来,一扫初期的颓废。
答失八都鲁败退后,刘福通随即派赵明远率军攻下嵩州、汝州、洛阳,由孟津渡过黄河,十一月攻破怀庆,河北震动。元朝急调察罕帖木儿防守河北之地,赵明远战败,全军覆没。十二月,休整后的答失八都鲁屡败屡战,进军攻打龙凤政权的首都亳州,刘福通在太康战败,元军进围亳州,韩林儿迁都安丰。次年三月,刘福通与攻城数月,锐气已钝的元军在亳州城下决战,双方自巳时打到酉时,大战数合,元军逐渐不支。答失八都鲁坠马,其子孛罗帖木儿将他扶上战马先行,亲持弓矢断后,接连射杀多名追兵,父子二人方得以逃脱。此战红巾军大获全胜,元军残部逃往陈留。
亳州解围后,刘福通一面休整部队,一面策划出击。至正十六年,九月,他派出李武、崔德率军西征,攻陕西;十一月,又派出毛贵率军攻入山东。东路军进展相当顺利,一路开疆拓土,连战皆胜;西路军稍微困难点,但战绩也还不错。在此鼓舞下,次年的六月,刘福通又派出白不信、大刀敖、李喜喜等将,西进增援李武、崔德;派关先生、破头潘、冯长舅、沙刘二等人率主力北上,攻河北、山西,准备直捣元王朝心腹之地。
西路军李武、崔德部于至正十六年九月出师,首克陕州。九月三日,西路军大败元军,杀参知政事述律杰,攻破入陕天险潼关,从此双方围绕着潼关征战不休。五日,元军反攻,潼关易手。十九日,西路军败元潼关守将,河南行省平章政事伯家奴,再夺潼关。元豫王阿剌忒纳失里再度来攻,红巾军战败,潼关又被元军夺去……西路军孤军深入,打不起这样的消耗战,遂回攻陕州、虢州。元河南方面主帅,知枢密院事、节制河南诸军答失八都鲁调察罕帖木儿和李思齐军西援陕西,准拟吃掉这支孤军。在察罕帖木儿和李思齐的部队调来后,陕、豫间实力对比的天平立刻偏向元朝,处于劣势的西路军相继丢掉了根据地陕州、虢州,遂北渡黄河,攻取平陆、安邑,但遭到察罕帖木儿军的尾袭,损失惨重。
至正十七年二月,休整后的西路军绕过元军主力,自武关攻入陕西,破商州,夺占七盘山,进据蓝田,前锋直指霸上,西安城已历历在目。西安守臣王思诚一面组织抵抗,一面向察罕帖木儿和李思齐求援。西路军被追进潼关的察罕帖木儿击败,李武、崔德率军南走兴元(今陕西汉中)。同年十月,白不信、大刀敖、李喜喜的援军进入陕西,攻占兴元、凤翔,察罕帖木儿、李思齐来攻,红巾军再度战败,退入四川。不久后,这支红巾军再入陕西,向西北攻取秦州、陇州,占领巩昌路,回师包围凤翔。在凤翔城下中察罕帖木儿内外夹攻之计,遭到前所未有的惨败,被斩首数万级,伏尸百余里。李喜喜率残部南去武昌,投靠了陈友谅;李武、崔德则转战陕、甘、宁之间,一直苦撑到至正二十一年五月,才向老对头李思齐投降。
东路军是红巾军北伐的主力之一,其统帅为毛贵。毛贵原是徐州芝麻李麾下的将领。
至正十二年,元相脱脱亲率大军攻破徐州,芝麻李虽然逃脱,但于一个月后被俘,立刻被欢天喜地的地方官械送京师。然而,由于脱脱在攻破徐州的时候,就忽悠皇帝称已经捕获芝麻李,所以对这个突然冒出来的真“芝麻李”很是头疼。相爷左思右想,最后下令将他暗地里解决掉,于是芝麻李才走到雄州,就被稀里糊涂地杀掉了。
赵君用与彭大(就是萧县城南的老彭了)突围杀出,逃到濠州,被郭子兴、孙德崖等人收留。但赵君用当惯了大哥,不习惯居于人下——在濠州城里惹是生非,反客为主,反倒把主人郭子兴等挤兑到一边去了。郭子兴和彭大谈得来,而孙德崖等人则巴结讨好赵君用,双方矛盾日深。某日,赵君用竟然派人把郭子兴抓起来,交给孙德崖毒打一顿,还打算做掉他。多亏郭子兴的干女婿是个智勇兼备的人物,他说动彭大出面,抢出了郭子兴。这位干女婿,就是前面那个皇觉寺里的见习和尚朱重八,他娶了郭子兴的干女儿马小姐后,成了有身份的人,所以也有了个文绉绉的名字,叫做“元璋”。朱元璋见和赵君用这票人实在没法子共事,只得带着他二十四个铁杆兄弟离开濠州,自立山头。
赵君用等人吃光了濠州的粮食后,只得移驾他去,于至正十六年攻破淮安路。龙凤政权设淮安等处行中书省,以赵君用为行省平章,跟着赵君用的毛贵从此也就成为龙凤政权的人了。至正十七年的二月,毛贵奉命率军由海州出海,乘海船登陆山东半岛,于二十七日攻克胶州,三月十二日攻克莱州,二十六日攻占重镇益都路、般阳路,声势大振。
元朝见山东形势不妙,调派江淮行枢密院副使董抟霄为山东宣慰使,与知枢密院事布兰奚一同率军进入山东,但均为毛贵击退。四月底,毛贵所部又克莒州、滨州,并西进攻占了济宁路、东平路、大名路、东昌路等地,元朝防守黄河的民军将领田丰也投降了毛贵。毛贵军切断了元王朝的经济命脉,连接南北漕运大运河,给在经济上给元朝以沉重打击,搞得朝廷只好招安叛伏无定的海盗方国珍,由他负责用海船将江南的粮食自海路运往北方海口以转入供应大都。
至正十八年二月底,毛贵军攻占济南,在山东站稳了脚跟。龙凤政权随即设立益都等处行中书省,以毛贵为平章。毛贵是当时龙凤政权中难得的军政双优人才,通过他的苦心经营,山东成为红巾军稳固的根据地。攻占济南后,毛贵继续北伐,进入河北,在南皮与元将董抟霄大战。董抟霄是当时元朝名将之一,在浙江与彭和尚、项普略红巾军的战斗中立有大功,此战中他亲自拔剑督战,被红巾军乱枪刺死。毛贵军接连攻占清州、沧州、河间,并占据长芦镇。三月,毛贵水陆并进,攻克蓟州,前锋抵达今北京通县境内的枣林、柳林,击杀元枢密副使达国珍,离大都仅有一百二十里的路程。
元朝廷震惊,顺帝下诏各地勤王,有些胆小的官员甚至建议迁都。然而毛贵也已是强弩之末,河南的元军精锐赶来,双方在柳林会战,红巾军不利。加之关先生等人的中路北伐军又迟迟未能赶来增援,毛贵遂退回山东,已占领的河北各州县又被元军夺回。
中路军由关先生、破头潘、冯长舅、沙刘二等人率领,于至正十七年九月越过太行山,攻入山西。他们连续攻占陵川、高平、潞州等地,威胁冀宁路(今太原)。元朝调陕西的察罕帖木儿军东援,红巾军进攻受挫,退入太行山休整。至正十八年春,毛贵率东路军攻入河北,吸引了大量元军北援,毛贵部将王士诚、续继祖等也自益都出发,攻怀庆路、破晋宁路。中路军压力骤减,也趁机分兵攻取绛州、沁州、冀宁、大同等地,但这支红巾军光惦记着占地方了,没有给予毛贵北伐军更直接的支持,导致毛贵军在大都郊区受阻,只得退回山东。
毛贵退军后,北方的各路元军立刻入晋打击中路军。五月一日,察罕帖木儿遣军攻占冀宁;五月八日,关保败红巾军于高平;六月十三日,关先生、破头潘攻克辽州。虎林赤率军来攻,关先生等西去,再克冀宁路;九月,关先生攻打保定路,不克,遂西破完县。鉴于与东路军已无法会师,关先生等乃决议北攻大同、兴和,进军塞外。十月,中路军攻破大同,十二月九日,攻克元上都开平城,焚毁了那里宏伟华丽的宫殿。
上都城是元王朝在塞外的政治中心,皇帝每年要在这里避暑、办公达半年之久。上都的陷落,对元王朝是一个严酷的打击,大家都对这个王朝是否还能继续存在产生了疑问。红巾军的出塞,还引发了蒙古汪古部落的响应,元赵王马扎罕吃惊不小,乃至于微服遁去。
中路军在上都呆了七天,转向东进,攻破全宁路,焚毁元鲁王府。至正十九年正月十三日,又攻破元辽阳行省省会辽阳路,杀懿州路总管吕震。元左丞相太平通过研究,认为红巾军千里北征,所过不占城邑,这次攻占辽阳也必然会很快放弃,遂向顺帝建议派他的儿子也先忽都为总兵大将军,率军进攻辽阳,满以为可以捡个大便宜。但也先忽都进抵辽阳后,发现关先生、破头潘一帮人“日治战马”——用现代术语讲,就是天天检修坦克——显然一时半会儿还不想走人。看着这帮恶狠狠的家伙,也先忽都自己先害怕起来,他的大军也不战而溃。