七月,岑彭開始發動對成都的攻擊戰,讓臧宮與護軍揚翕帶領5萬俘兵,從涪水上平曲抗拒延岑,並布置許多疑兵陣,以迷惑延岑而牽製他的兵力;岑彭自己率領漢軍乘船還江州,然後溯都江而上,襲擊黃石的侯丹軍,並把侯丹軍打得大敗。於是岑彭迅速向蜀軍主防線的背後成都進擊;日夜倍道兼行,疾馳2000多裏,進抵武陽(今四川彭山縣東),並很快攻占該城,隨即又派精銳騎兵馳襲廣都(今四川雙流縣東南),直逼成都。岑彭軍這種從側翼進行奇襲的行動,勢如迅雷,所到之處,蜀之兵民四處逃散,蜀之全軍無不震駭。所以公孫述大驚並用杖敲打著地說:“怎麽會這麽神速呢?”情勢的嚴重性由此可見一斑。
平曲方麵的戰鬥,臧宮率俘兵五萬及本部兵在平曲抗拒並阻止了延岑的攻擊,延岑遂在沅水停止前進。這時臧宮軍因為後方糧食運輸量不足,兵多食少,軍中引起不少的恐慌,俘兵情緒更不穩定,想逃跑或反叛,郡邑又保聚自守,觀望成敗;因而臧宮陷於進退維穀中,不退則軍中缺糧,俘兵都要叛散,撤退則又恐怕延岑的軍隊會追襲。臧宮在這種窘迫危急的形勢下,正好光武帝派遣的增援軍隊到達,且有馬700多匹,臧宮遂乘這種增援的聲威驅軍而進,並多張旗幟,登山鼓噪,以給敵人造成百萬之眾的假象;同時讓步兵在右,騎兵在左,挾船師在江前進,日夜疾馳,向延岑軍進襲。延岑沒料到臧宮軍會這麽快來到,登山一望,看到漢軍兵眾氣盛,而大為震恐;臧宮遂發動進攻,很快打敗延岑,斬敵及敵人溺死者達萬餘人。延岑敗走成都,他的軍隊大多降漢。於是,光武帝給公孫述寫信勸其投降,陳言禍福,並示以丹青之信,被公孫述拒絕,於是光武帝展開對成都的攻奪戰。
十月,公孫述困守成都,使用間諜戰術,派刺客裝扮成亡奴投降岑彭,利用夜間混入岑彭近前刺殺了岑彭。岑彭被刺殺後,漢軍失去主將,監軍太中大夫鄭興就暫時代替岑彭統製全軍,退出武陽以等待吳漢的增援。十二月,吳漢率3萬軍溯江而上,接領鄭興所統率的岑彭軍,並立即向成都再次展開攻擊。