但是未等各路官军齐集河南,闯王高迎祥、八大王张献忠、闯将李自成、过天星及扫地王、太平王等率领的农民军已于崇祯八年(1635)正月上旬从河南进入安徽,十一日攻克颍州(今安徽阜阳),前锋直指明中都凤阳。凤阳是明朝的“龙兴”之地,明太祖父母的坟墓和他少年出家的龙兴寺都在那里。明太祖一度在此营建都城,称为“中都”。由于它是帝乡,明太祖在洪武十六年(1383)三月曾下令:“复凤阳、临淮二县民徭赋,世世无所与。” 但是,能享受这种待遇的只有原籍凤阳、临淮的人口,因犯罪而被谪、营建中都而被迁入以及大量被迁至凤阳屯田的外来人口是不包括在内的。又因为是帝乡,当地的各种营建和差役多如牛毛,加上土地贫瘠,又濒临淮河,明中期以后,水利年久失修,常遭黄、淮河水泛滥之灾,旱涝无常,贫苦农民更是苦不堪言。
当农民军进入安徽,大有直捣凤阳的势头时,南京礼部尚书吕维祺曾对兵部尚书张凤翼指出:“南都、凤、泗、承天(治今湖北钟祥),陵寝所在,乞欶淮抚杨一鹏急为预备,防贼东犯。” 但张凤翼只发文凤阳、山东两巡抚及操江御史,令其严备要害,并未采取任何具体措施。就在起义军攻打颍州之时,中都留守司发生兵变,杀死皇陵卫指挥侯定国。凤阳商民因不满守陵太监杨泽的贪虐,又齐集凤阳巡按衙署之前请愿,然后放火焚烧守陵太监的衙署,接着派人前往颍州向起义军献上图册,指明某处富家,何处无兵。起义军于是密遣三百壮士,扮作商人、车夫、僧道、乞丐,潜入凤阳城内。崇祯八年(1635)正月十日清晨,扫地王、太平王等部起义军乘着大雾弥漫、百姓正在庆祝元宵节之时,突然进抵凤阳,与潜入城内的三百壮士里应外合,一举攻占凤阳城,击毙凤阳留守署正朱国巷及官军4000余名,并杖杀凤阳知府颜容暄。“贼渠列帜,自标‘古元真龙皇帝’” ,放火焚烧皇陵享殿和龙兴寺。过了三天,听说南京官军即将赶到,起义军才拔营南下,转攻庐州(今安徽合肥)。
凤阳皇陵被焚,这在当时是一个重大的政治事件。其直接责任者巡按御史吴振缨、漕运总督兼凤阳巡抚杨一鹏怕担罪责,故意隐瞒不报,“无一以闻”。正月二十五日洪承畴赶往河南,令各省巡抚、总兵到河南集结之时,明思宗还蒙在鼓里,批准洪承畴提出的作战方案,升其为兵部尚书,赐尚方剑,许其便宜从事。直到二月初七日,明思宗才得知凤阳危急,命总兵尤世威从徐、淮往援凤阳,杨御蕃率山东兵往护皇陵,刘泽清防守曹、濮。三天后,吴振缨眼看纸包不住火,才上报凤阳之变。二月十二日,明思宗得到奏报,停免经筵,素服避殿,躬赴太庙祭告祖宗之灵,并命百官修省。第二天,下令逮杨一鹏、吴振缨和守陵太监杨泽,并任命兵部右侍郎朱大典总督漕运兼巡抚庐、凤、淮、扬四府,移镇凤阳,同洪承畴协剿。
在扫地王、太平王攻打凤阳的同时,高迎祥等部已经向西,经太和、亳州,攻打陈州(今河南淮阳)、睢州(今河南睢县)、鹿邑、太康等地,进入南阳。张献忠等部则进入巢县,攻打庐州,攻克庐江、无为,攻占和州(今安徽和县),然后折向西南,进入湖广东部的蕲(治今湖北蕲春县蕲州镇西北)、黄一带,后又挺进襄阳地区。洪承畴正月二十八日到达河南,三月初一日抵达汝宁(今河南汝南),不料农民军又杀了个回马枪,纷纷折返陕西,到四月间已悉数归秦。当时陕西已残破不堪,灾荒异常严重,饥民纷纷投奔起义队伍,“从贼者如归市”,农民军的人数很快就扩增至200万以上。
四月间,明廷征调的官军大部分已到达河南。四月十二日,洪承畴在汝州召集诸将,商讨征剿方略。他针对农民起义军流动作战的特点,决定采取“分信地扼之,使不得流”的围剿计策 ,命左良玉、汤九州以五千兵马守瓦屋(在今河南西峡西偏北)、吴村(在今河南淅川西),控扼农民军从陕西进入河南淅川、内乡之路;尤世威、徐来朝以五千五百兵马守兰草川、朱阳关(均在今河南灵宝西南),控扼农民军从陕西进入河南卢氏、永宁(今河南洛宁)、灵宝、陕州之路;陈永福以一千八百兵守卢氏、永宁隘口,以备堵截遗漏之敌;邓玘、尤翟文、张应昌、许成名各以所部分守汉江南北诸隘口,控扼农民军进入湖广郧西、竹溪等地;自己则率贺人龙、刘成功进入陕西,并令曹文诏从湖广赶来会合。洪承畴的这个计策,是想把农民军堵在陕西境内,自己带兵逐一加以剿灭。部署看似十分周密,却不切合实际。当时陕西境内的农民军人数达200万以上,分散活动于各地,洪承畴不是集中兵力围剿其中之一部,再逐一征剿其他诸部,而是采取“分信地扼之”,使得本来有限的官军兵力变得非常分散,也更加单薄。况且,官军的士气十分低落,将士都不肯用命,一再哗变。先是徐来朝不愿扼守兰草川、朱阳关,士兵在卢氏县哗变;接着,邓玘由于长期克扣军饷,引起士兵的哗变。邓玘被吓坏了,登楼越墙,在慌乱中坠入火巷,被活活烧死。这样,未曾出师就先折损两支队伍,加上征调的罗坝土司兵迟迟未能赶来,更使洪承畴捉襟见肘。但迫于六个月“灭贼”的严旨,洪承畴也只好挥师上阵,孤注一掷了。
四月底,曹文诏从南阳匆匆赶到灵宝,来见洪承畴。洪承畴担心商、洛一带的农民军向汉中转移,令曹文诏率部从乡间小道直插洛南、商州,驰入汉中,迎面阻遏。曹文诏于五月初五日抵达商州,见农民军驻营城外30里处,营火满山,即于夜半率侄儿参将曹变蛟、守备曹鼎蛟及都司白广恩发起攻击,初战获胜。六月,李自成等部围攻宁州(今甘肃宁县东北),曹文诏手下的副总兵艾万年,副将刘成功、柳国镇,游击王锡命率3000人往援宁州。襄乐镇(在今甘肃宁县东北)一战,官军先获小胜,后来力渐不支,被迫撤退。行至巴家寨遭到农民军的伏击,艾万年、柳国镇毙命,刘成功、王锡命负伤而逃。曹文诏闻讯,瞋目大骂,拔刀砍地,向洪承畴请战。洪承畴大喜,曰:“非将军不能灭此贼。顾吾兵已分,无可策应者。将军行,吾将由泾阳趋淳化为后劲。” 骄横狂妄的曹文诏率领3000人马向农民军发动进攻。六月二十八日,双方在真宁(治今甘肃正宁)县境的湫头镇开始交战。李自成针对曹文诏轻敌寡谋的弱点,退军30里,将其诱至自己的埋伏圈,紧紧加以围困,然后一声令下,杀声四起,飞矢猬集。曹文诏左右跳荡,转斗数里,力竭不支,拔刀自刎死。在明末官军中,曹文诏“勇毅有智略”,以狠毒“敢战”著称。史载“诸将在阵,于胁从者纵令逃去,文诏必尽杀,无一存者” 。他同农民军作战七年,先后屠戮起义群众数万人,杀死起义首领数十名。他被李自成等部所围歼,“贼中为相庆”。这对明朝统治者是个沉重的打击,“(洪)承畴闻,拊膺大哭,帝(明思宗)亦痛悼” 。
湫头镇战后,农民军乘胜东进,直逼西安。洪承畴急忙调兵守御泾阳、三原,好不容易才保住西安。此时的西安,由于连年不断的天灾人祸,到处是残垣断壁,遍地蓬蒿,起义军人数激增,很难找到足够的粮食。明廷又不甘心失败,不断调兵遣将,加强对农民军的围剿。为了摆脱这种不利的处境,马守应等农民军不断冲击豫、楚两地的关隘。七月,首先冲击朱阳关,扼守此关的是徐来朝所率的天津兵,他们原本不愿入山,曾在卢氏县哗变,后被强制上山戍守,根本没有什么斗志。农民军一到,徐来朝逃窜,一军尽没。月底,农民军又破兰草川,击伤总兵尤世威和游击刘肇基、罗岱。八月,乘势进入河南,越过卢氏县,到达永宁。到十月,高迎祥、张献忠、一字王刘小山、撞天王等部几十万人都已东出潼关,进入河南。留在陕西坚持斗争的,只有李自成等部为数不多的几支农民军。洪承畴的堵剿计划宣告破产。