平隴一戰(zhàn)之后,劉秀即開始從南、北兩個方向,對益州的公孫述展開了多次攻勢。
建武十一年(35年)三月,大司馬吳漢率荊州兵六萬,馬五千匹,于荊門與岑彭會合,沿長江西上入蜀進攻;來歙、蓋延率諸軍自隴西南下攻河池入蜀進攻。南線岑彭軍溯江西上,攻克荊門,俘虜了程訊,斬殺了任滿,使田戎不得不退守江州(今四川重慶市北嘉陵江北岸),彭遂由三峽,長驅(qū)直入江關(guān)。而沿途的郡縣都一一降附,大軍直迫進入江州。
建武十一年(35年)六月,北路來歙軍大敗王元、環(huán)安軍,攻破下辨(今甘肅成縣西北)、河池,率軍挺進蜀中。公孫述派人去刺殺來歙,劉秀乃派將軍劉尚繼續(xù)率軍南下。
江州城固糧多,不易攻破,岑彭遂留兵圍困,自率主力直指墊江(今四川合川),攻破平曲(今四川合川東)。公孫述令其將延岑、呂鮪、王元、公孫恢率軍拒守廣漢(郡治樟潼,今屬四川)、資中(今四川資陽),另又派侯丹率二萬人拒守黃石(今四川涪陵東北橫石灘)。岑彭留臧宮于平曲拒蜀兵主力延岑,而自率軍折回江州,溯江西上,襲破黃石,倍道兼程二千余里,迂回岷江中游,占領(lǐng)武陽(今四川彭山東),進擊廣都(今四川成都市南,岷江東北岸)。公孫述又派人去刺殺岑彭。
劉秀命吳漢率兵三萬趕到前線,接替岑彭指揮大軍。建武十二年(36年)一月,吳漢使蜀軍于魚腹津(今四川眉山之岷江渡口)大敗,其進而圍攻武陽,殲滅了蜀援軍五千余人。再西上又破廣都,逼近成都。但吳漢他求勝心切,率二萬步騎進攻成都,兵敗而歸。不過吳漢也吸收教訓(xùn)了,隨即便改變戰(zhàn)術(shù),乘黑夜秘密撤到錦江南岸與其副將劉尚合兵,并力對敵,轉(zhuǎn)敗為勝。
此后,吳漢根據(jù)劉秀敵疲再攻的戰(zhàn)術(shù),與蜀軍戰(zhàn)于成都、廣都之間,殲滅公孫述大量有生力量,最后兵臨成都城下。
十一月,臧宮攻克繁(今四川彭縣西北)、郫(今四川郫縣)與吳漢會師,合圍成都。公孫述招募五千敢死士交延岑指揮,準備決一死戰(zhàn)。而延岑在市橋(今四川成都市南郊)大敗吳漢。吳漢隱蔽精銳,示弱誘敵。公孫述便貿(mào)然出擊,遭遇漢軍的伏殺,蜀軍大敗,公孫述重傷而死。
延岑一見蜀中大勢已去,延岑便率成都守軍向劉秀請降。
自建武元年至建武十二年(36年),劉秀登基后用了十二年的時間去平定天下,終使天下一統(tǒng),使得自新莽末年以來四分五裂、戰(zhàn)火連年的中國再次歸于一統(tǒng)。