张献忠、罗汝才等获悉杨嗣昌出马督师后,预感到将有一场恶战,就把队伍带进深山。杨嗣昌在襄阳筹划进剿时,张献忠部已由湖北西进,转入陕西、四川交界地区;罗汝才、过天星等部则活动于南樟、房县、兴山、远安一带。杨嗣昌秉承朱由检关于集中力量首先打击张献忠起义军的指示,于崇祯十三年闰正月檄诸道进兵,命陕西总督郑崇俭率领副总兵贺人龙、李国安的军队从汉中西乡入川。他估计围剿开始以后,张献忠将率部折入陕西,因此命令左良玉以主力驻于陕西兴安(今安康)、平利,另遣偏师三千人入蜀参加追剿。左良玉不同意这个部署,认为把主力留在兴安、平利,只遣偏帅追剿,未必能够奏效,而张献忠部未必会北入陕西;万一向西进入四川成都平原就难以控制。因此,他拒绝执行杨嗣昌的命令,在二月初一日带着部下兵卒由渔渡溪进入四川。杨嗣昌对左良玉擅自违反自己的节度很不满意,把左良玉的申文转报崇祯皇帝,意思是立此存照,打了败仗也同自己无关。
二月初七日,左良玉所统主力和陕西官军,同张献忠部义军在四川太平(今万源县)玛瑙山遭遇。义军据守山顶,准备迎敌。左良玉由于新受命为大将,求功心切,在察看了地形险易后,下令由他自己统率的军队担任中路和右路,陕西兵为左路,以击鼓为号,同时发动进攻。起义军虽然拚命反击,终因力量不敌,被官军攻上山头,老营也遭到袭击。献忠大败,部卒牺牲了三千五百多人。他自己用的镌有“天赐飞刀”字样的大刀,刻有“西营八大王承天澄清川岳”字样的虎符、镂金龙棍,令旗、令箭、卜卦用的金钱以及妻妾敖氏、高氏等七口都被官军掳获。十反王杨友贤投降。献忠的军师潘独鳌躲在树林里也被官军搜获。杨嗣昌命令把敖氏、高氏和潘独鳌关进襄阳监狱,飞章向朝廷报捷。朱由检得报后欣喜异常,除了颁发赏银等物以外,还命新任兵部尚书陈新甲制定将领立功赏格,催促杨嗣昌乘胜进军。
三月初九日,陕西官军贺人龙、李国奇部在韩溪寺又大败张献忠起义军。起义军阵亡一千三百人,献忠部将左营一条龙(薛成才)、右营顺天王(贺国现)领着两千多人投降。次日,官军追到盐井,起义军又损失六百五十一人,前营二隻虎带着一千多人投降。但这时张献忠部仍有相当实力,在西撤途中将四川官军张令部六千人包围在柯家坪,直至湖北官军赶到后,献忠才解围而去。三月十五日,陕西官军又追杀起义军于木瓜溪,义军战士牺牲了一千二百多人。张献忠在连遭重大挫折以后,领着残兵败卒进入荒山野岭,躲过官军的追剿。
就当时的形势来说,张献忠的处境是十分险恶的。杨嗣昌毫不掩饰自己洋洋得意的心情,多次在给朝廷的奏疏和给其他官僚的信函里,预言张献忠的被“擒斩”已经指日可待。然而,同他的预料相反,张献忠部义军终于度过了难关,在崎岖的征途上又胜利前行了。这里的原因有三:一是张献忠和他的忠实部下,没有因为敌人的强大和自己的屡遭挫折而悲观失望;二是山中的老百姓给了义军以很大的帮助,他们不仅拿出了食盐、粮草等生活必需品支援起义军,还对官军封锁义军的行踪,帮助起义军探听官军的动向;三是统治阶级内部的矛盾逐渐激化,使他们不可能齐心合力地追剿起义军。
前两个原因比较明显,这里着重谈谈第三个原因,即统治集团内部文官武将之间矛盾的激化。玛瑙山战役以后,左良玉神气起来,认为自己在这次战役中立下大功,是违背杨嗣昌的部署才取得的,从此就不把杨嗣昌放在眼里。杨嗣昌命他乘胜追击,他偏按兵不动。杨嗣昌亲笔写信给他晓以利害:
“圣意所重,全在逆献一人。深箐四壁,险峻难逃。将军在彼,严督穷搜,断可必得。今云十二日引兵而还,何耶?想穷谷无粮,大兵难驻。将军必不得已而为此。或张应元、汪云凤亦能办此则幸矣。万一不能,而逆献终逃不获,将奈之何?将军万万再画必然之策,勿胶奇正之言,果大兵回兴,须驻彼调度,期擒渠而止。毋令旁观忌嫉之夫谓贼在掌握而复纵逸为患也。”
左良玉对此置之不理,仍然“高卧竹溪、屡檄不动,不肯协心穷搜深箐。”杨嗣昌本来就性情偏狭,不能忍受别人的轻视,更主要的是急于抓到张献忠以便向朝廷请功,因此对左良玉大为不满。他在愤懑之中写信给兵部尚书陈新甲,商量用陕西总兵贺人龙代替左良玉挂“平贼将军印”。陈新甲即据以入告,取得了朱由检的同意。朝命下达之后,杨嗣昌又犹豫起来,他知道临阵易将,兵家所忌,何况无论在声望上还是在实力上,贺人龙都不能同左良玉相比。于是又请求朝廷收回成命。这种用大将如儿戏的做法,反映了明廷内部的重重矛盾。左良玉闻讯之后,对杨嗣昌极为反感;贺人龙因为杨嗣昌透露过将任命他为大将正满心高兴,不料杨嗣昌出尔反尔,事情中途变卦,也怀恨在心。这样,由于杨嗣昌心地偏狭和行事笨拙,大将没有换成,反而弄成两面不讨好,便他操纵的这部反革命机器,愈来愈运转不灵了。张献忠充分地利用了统治集团的内部矛盾,率领部众偃旗息鼓从山间小路返回湖北兴山、房县地区。
这年七月,罗汝才、白贵(小秦王)、武自强(混世王)等部在兴山县丰邑坪被京营官兵和湖广官兵击败,阵亡士卒三千三百人。十三日,白贵、武自强、张自秀(张胖子)率部众四千人于羊角寨投降。罗汝才感到兵单势孤,乃于十九日同张献忠部合营于白羊山。两人商议后认为官军主力云集湖北,只有进兵四川才有前途。于是,两部义军合力向四川挺进。杨嗣昌得到报告,决定自己亲赴四川,“压贼折楚,一鼓可完。”不料川军方国安部由于前任总兵罗尚文“虚冒剥削”,以致士兵“衣甲器械蓝缕朽蔽,全不堪战”。起义军进抵大昌,杨嗣昌檄调方国安部“迎头截击”,方部未至而义军已渡过昌江进抵净堡。这里原有川将张奏凯领兵五千据守,听说义军到来吓得魂不附体,避上高山,使义军不战而过。杨嗣昌闻讯后气得连声抱怨川兵“毫无足恃”,以致“山川绝险”而起义军却“如履坦途”。