公元1633年,张献忠跟着高迎祥,趁着黄河结冰,渡过黄河,进入了河南。河南的老百姓跟陕西一样,也受够了明朝的压迫,见西营来了,纷纷响应。张献忠率领西营,先后攻克了洛阳、开封等地的县城,还缴获了明军大量的武器和粮食。当时的河南官员在给朝廷的奏折里说:“贼(指张献忠)势浩大,河南百姓群起响应,如蚁附膻,不可阻挡。”(《豫变纪略》)
崇祯皇帝得知消息后,急得团团转,任命卢象升为五省总督,负责镇压农民起义。卢象升是明朝末年难得的良将,很会打仗,他上任后,很快就组织了一支精锐的明军,对张献忠的西营发起了进攻。可张献忠根本不怕,他知道卢象升的军队装备精良,就故意避开明军的主力,率领西营钻进了深山里,跟明军打游击。卢象升率军追了几个月,连西营的影子都没见到,反而被拖得精疲力尽,最后只能撤兵。
公元1635年,高迎祥在荥阳召开了“荥阳大会”,张献忠作为西营的首领,也参加了会议。会议上,大家讨论如何应对明军的“围剿”,有的首领主张投降,有的首领主张各自为战。就在大家争论不休的时候,张献忠站了出来,拍着桌子说:“投降是死,各自为战也是死!只有团结起来,跟明军拼到底,才有活路!”他还提出了“分兵定向”的策略,建议把起义军分成几路,分别向不同的方向进军,分散明军的兵力。大家都觉得张献忠的主意好,纷纷表示同意。
荥阳大会后,张献忠率领西营,向明朝的南直隶(今江苏、安徽一带)进军。南直隶是明朝的富庶之地,官府的粮仓里堆满了粮食,张献忠早就惦记上了。他率领西营,一路上势如破竹,先后攻克了凤阳、庐州等地,还烧毁了明朝的皇陵。崇祯皇帝得知皇陵被烧,气得痛哭流涕,穿着丧服在朝堂上祭拜祖先,还下了“罪己诏”,承认自己的过错。庄烈帝本纪》)
可张献忠根本不在乎崇祯皇帝的愤怒,他率领西营,继续在南直隶一带攻城略地,抢了不少粮食和财物。他把抢来的粮食分给老百姓,把抢来的财物分给士兵,西营的士气越来越高,兵力也发展到了十几万人。当时的明朝官员,提起张献忠就头疼,说他是“明末第一流寇”,比高迎祥还难对付。
公元1638年,明朝派洪承畴、孙传庭率领大军,对农民起义军发起了大规模的“围剿”。高迎祥在潼关被俘,李自成的队伍也被打得只剩下十几个人,躲到了商洛山里。张献忠的西营虽然实力较强,但也面临着明军的重重包围,处境越来越艰难。
张献忠知道,硬拼肯定不行,只能想别的办法。他琢磨来琢磨去,决定“诈降”——表面上向明朝投降,暗地里保存实力,等时机成熟再重新举起反旗。他找到了明朝的将领熊文灿,给熊文灿送了很多金银财宝,还表示愿意接受朝廷的招安。熊文灿是个贪生怕死的主,见张献忠愿意投降,还送了这么多好处,就一口答应了,还向朝廷上奏,请求招安张献忠。
崇祯皇帝见张献忠愿意投降,非常高兴,觉得终于可以平定农民起义了,就下旨招安张献忠,封他为“副将”,让他率领西营驻扎在谷城(今湖北谷城)。张献忠表面上对明朝感恩戴德,暗地里却在谷城招兵买马,打造武器,还偷偷跟李自成联系,约定将来一起反明。
在谷城的一年多时间里,张献忠过得非常滋润——他不用跟明军打仗,还能从朝廷那里领到军饷,西营的实力也在不断增强。明朝的官员虽然知道张献忠在暗中搞小动作,但因为熊文灿的包庇,也不敢多说什么。可张献忠觉得时机差不多了,就决定重新举起反旗。
公元1639年五月,张献忠在谷城杀了明朝的知县,重新举起了反明的大旗。他率领西营,先后攻克了房县、保康等地,还杀了明朝的将领罗岱。崇祯皇帝得知张献忠叛逃,气得火冒三丈,下令把熊文灿革职查办,还任命杨