孔希贵按照李乾德的吩咐,率水师战船由洞庭湖口直入长江,开至大西军炮矢射程范围,然后停船擂鼓,佯装进攻。
张可旺率军正向城陵矶进军,骤见敌船来攻,连忙下令全军面向长江布阵,顷刻间万箭齐发,向着官军战船就是一阵急射。
孔希贵不慌不忙地下令全军举起盾牌抵挡箭雨,大约过了半个时辰,眼瞅着大西军箭矢将尽,孔希贵这才下令战船靠岸,领兵杀上岸来,张可旺抵挡不住,兵败而回。
两路大军皆遭惨败,张献忠不由大怒,当场斩杀了数名带头逃跑的头目,然后亲率大军杀回江岸。
此时孔希贵已将兵马撤回战船,将船摇至箭矢射程之外。张献忠扑了个空,心中恼火,当即督军二十万,漫山遍野地向城陵矶扑来。
在张献忠亲自坐镇下,攻城将士个个奋勇当先,即便前军尽数阵亡,后队也没有丝毫退缩,仍旧继续踏尸前行。
战至深夜,眼见城外尸积如山,而后面的大西军依然源源不断地向城下冲来,李乾德有些胆怯了,他知道城破只在旦夕之间,于是连夜弃城,逃回了岳州。
拿下城陵矶后,张献忠率军继续向岳州进发,这岳州城除了西面正对洞庭湖,其他三面皆是高山,张献忠立刻分兵抢占各座山头,居高临下放炮猛轰城内。
援军久等未至,李乾德知道岳州也支撑不了多久,连忙劝说孔希贵和许璟打开岳阳门,从水道退往长沙据守。
二人连连称是,李乾德遂收集商船数千艘,分批载运兵马退入洞庭湖,转入湘江,留孔希贵领兵扼守湘阴,自己则与许璟返回长沙。
李乾德逃跑后,大西军得以顺利进驻岳州。
岳州乃是湖湘诸府商船汇聚之地,李乾德退走时虽将大部分商船征用,但依然留有一千多艘未来的及卸货的商船。张献忠于是命人将船中货物尽数卸下运往官仓,然后将这些商船尽数改成战船,打算走洞庭湖水道去攻长沙。
由于先前水军大多已经消耗殆尽,如今大西军空有千艘大船却没有驭船之人,无奈之下,张献忠只得在城中张榜招募水手。
然而大部分水手皆被官军征调,剩下的大多不谙水性,又不知大西军底细,心中难免害怕,一连数日,竟没有一人前来应召。
张献忠勃然大怒,下令将城中所有壮丁一并押来审问,有愿当水手者上船服役,如借故推诿者当场斩杀,一连杀了数人,这才总算将各船水手凑齐。张献忠又命全军除了骑兵以外,一律上船改习水军,