张献忠在武昌自称西王数月,闻听左良玉率兵西进,十分惊恐,便带领十余万义军,浩浩荡荡再度进入四川。左良玉的铁骑营前驱猛追至金口,擒杀张献忠殿后总兵邓云程。这时,张献忠已攻陷岳州,左良玉闻报大惊,驱兵速行。偏沅(今湖南芷江市)巡抚李乾德(西充县人)、总兵孔希贵、监军道许璟三人率兵二万驻守城陵矶。李乾德用计破敌,匿壮士健马于百姓中,诡称父老约降,尽杀义军前部,割四人耳放归以告张献忠。张献忠遣孙可望迎击官军,明军三战三克,义军返回岳州,攻打长沙。李德乾和巡抚御史刘熙祚、长沙总兵尹先民,保护吉王和惠王去衡州。这时,张献忠已攻破衡州,桂王逃奔永州,途中遇着吉王与惠王,便同行逃亡。张献忠又率兵追杀三王,李乾德等人保护三王南入西粤,去到了南明。
崇祯十七年(1644年)春正月,张献忠攻克夔州,到了万县,江水暴涨,留屯三月,攻破涪州,打败了总兵曾英。这年六月,张献忠攻陷佛图关,打败了蜀抚陈士奇,陈士奇出兵扼守重庆,巡按御史刘之勃守成都。六月二十日,张献忠攻破重庆,杀死瑞王朱常浩,并杀死蜀抚陈士奇、太守王行俭和巴县令王锡。当天,天上没有云,却听到雷声隆隆,张献忠大怒说:“我杀人管你屁事,你打雷干什么?”命令义军一齐朝天发炮,与老天爷对打。不久,张献忠率兵进攻成都,蜀王朱至澍闻听张献忠将至,准备逃奔云南。刘之勃说:“贼兵将至,焉能远行,莫若坚守城池,待勤王兵至,贼兵自退。”当时,城中百姓议论汹汹,一片混乱,抢劫之事,时有发生。忽然下起了大雨雹,巨雷又震动蜀王寝殿,城中的人惊恐不已。七月,新抚龙文光、总兵刘佳胤带领官兵三千从川北来,与蜀王谋设防守御敌之策,城中富裕人家已大多逃走。八月五日,义军骑兵从资阳杀来,水兵从洪雅、新津杀来,直逼成都城下。刘佳胤出城御敌,刚一接战,就被义军打败。义军四面纵火,龙文光急遣人往灌县挖决堰堤,注水锦江以溢城濠。八月初九日,大雷电,雨如注,守城的人不能站立。义军用砲火攻打城门,西北隅的锦江楼又被砲火击崩,未等到灌县的大水到来,义军已攻进成都。蜀王朱至澍带着妃子、夫人等投井自杀,龙文光与刘佳胤亦投浣花溪而亡。刘之勃被义军活捉,不屈不挠,义军将他缚于端礼门外,用箭猛射,致死骂不绝声。百姓们扶老携幼狂奔出城,被义兵挡住都不得出,全部驱赶到中园。张献忠准备把城中百姓全部杀光,平东将军孙可望流泪劝谏说:“大王转战十余年,所过屠灭,无尺寸之地以守,非将士相从意也。今出万死争斯土,庶几为王成霸业耳,若又屠其众,某等何用生为?请王手中剑,刎吾颈先百姓死矣(先杀我吧,不要杀百姓)!”张献忠接受了孙可望的忠告,于是下令,列其兵为甬道,阅民而过之,凡壮男少妇皆编入营中。百姓父子夫妇失散,痛苦不已,巷市搜罗一空。这年冬月十六日,张献忠在成都即位,国号大西,改元大顺,自称大西国王,名成都为西京。遂用汪兆麟为左丞相,严锡命为右丞相,设六部尚书、五军都督府等官,以井研(今四川井研县)陈氏为皇后,以养子孙可望、艾能奇、刘文秀、李定国等为将军,赐姓张氏,分别巡行各府州县,有叛逆者,全部杀光。