回到洛阳,刘秀御驾南征,让寇恂做前锋。汉军一到颍川,敌军就沿路下跪投降。寇恂只诛杀了几个头目,其余全部赦免。郡中父老无不欢迎,并请求刘秀让寇恂留在颍川一年。刘秀同意,自己班师回朝。同时,刘秀又派大司空李通与大将军王常平定东郡济阴县敌军,任耿纯为东郡太守。耿纯连任五年,境内太平,后来病死在任上。
而吴汉、岑彭围住西城,一个多月还没有攻下,刘秀叫他们只留下精兵,遣回羸弱的士兵。吴汉急于邀功,不肯听从,又探知杨广病死,更想全力攻城。岑彭想出一计,将谷水灌入西城,就在城池快被淹没之时,王元带着蜀兵前来,顷刻冲破汉军营垒。吴汉、岑彭不能支持,再加上缺粮,仓皇东归。随后,耿弇、盖延也撤围,只有祭遵还留在汧城。建武九年(公元33),祭遵病死。刘秀悲痛异常,令冯异接任,并派人护丧东归,亲自到河南哭奠。
随后,隗嚣移居冀邑,又攻占安定、北池、天水、陇西各城,但因积劳成疾去世。王元、周宗等人立隗嚣的小儿子隗纯为王,屯兵冀城,仍向公孙述称臣乞援。当时,田弇、李育已回到蜀地,公孙述派田弇、赵匡前来援助。又派田戎、任满等攻入巫峡,占据荆门、虎牙。
刘秀采纳来歙的计策,运送粮草到汧城,等到秋高马肥之时,派来歙为统帅,率冯异、耿弇、盖延等一同进攻天水。汉军气势汹汹,不费吹灰之力大败蜀兵,阵斩田弇、赵匡。隗纯住在冀城,让王元等屯兵落门,依险拒守。冯异等人进攻落门,耿弇等人进攻高峻占据的高平第一城。结果,攻了一年都没有攻下,冯异抱病去世。刘秀令冯异的长子冯彰袭爵,又亲征西州,直抵汧城,命寇恂招降高峻。寇恂斩杀高峻的军师皇甫文,敲山震虎,成功招降高峻,占据高平。
随后,来歙猛攻落门,守将心有畏惧,拥着隗纯出来投降,只有王元逃了出去,投奔蜀地。至此,陇地得以平定。刘秀下令将隗氏宗族迁居到京城,自己率领寇恂等人回朝。途中,隗纯带着十多人逃走,后被捕处死。
与此同时,岑彭驻兵津乡,正在攻打江关的蜀兵。刘秀派吴汉与刘隆、臧宫、刘歆率兵进发荆门,与岑彭会师,先后攻下江关、平曲、夷陵。来歙、盖延等人也领兵进入蜀地,击败王元与环安,捣破下辨城,长驱直入。然而天有不测风云,来歙遇刺身亡,刘秀非常伤心,追封来歙为征羌侯,赐谥节侯。另派马成接任他的职位,然后亲自率六军征伐蜀地。
岑彭令臧宫领兵五万,从涪水到平曲截住延岑,自己领兵到江州,出其不意袭击侯丹。然后又快速行军,日夜不停,直抵武阳,攻打广都。公孙述听说汉军已到广都,不禁惊慌万分,把手杖扔在地上,跺着脚大呼:“汉军如此迅速,莫非是神兵?”说完,立即招募兵马防守广都,并让延岑等人回来支援。殊不知,延岑已被汉将臧宫所败,兵众大部分战死,所有粮草都送给了汉军,只带着数十个骑兵逃回成都。就连一向主战的王元,也率兵投降。
刘秀连得捷报,认为不必亲自前往,准备返回都城。谁知,急报传来—岑彭被公孙述派人刺死了!刘秀很是悲伤,赐给岑彭的妻子很多东西,并赐岑彭谥曰壮侯,然后令吴汉即日进军讨伐。
吴汉从夷陵出发,一鼓作气,围攻武阳、捣入广都城。刘秀担心攻不下成都,于是招降公孙述。公孙述不肯投降,即便江州被攻破,仍不肯回头。见此,刘秀传话给吴汉,让他坚守广都,等到公孙述精疲力尽,再去攻击。吴汉却急于邀功,不肯听从,一面兵分两路逼近成都,一面上报朝廷。刘秀大惊失色,立即下令让他退回广都。可是命令还没到,吴汉就被公孙述围攻了,险些全军覆没。
后来,吴汉看到刘秀的信,就让刘尚留下拒敌,自己领兵回到广都。刘秀又传话说:“你回广都后,公孙述必不敢去攻打。如果他先攻刘尚,你可以从广都前去支援,彼此相应,公孙述必败无疑。”这一次,吴汉谨遵旨意,等到蜀兵前来攻打,才去迎战。果然,屡战屡胜,多次击退公孙述,再次逼近成都。
不久,臧宫的一队人马也攻绵竹、破涪城、斩公孙恢,长驱直入,与吴汉在成都城下会师。双方几次交战,有胜有负。后来,吴汉隐蔽精锐,以弱诱敌。公孙述贸然出击,被吴汉特意留在营中的精锐高午刺伤,跌落马下。部下拼死相救,将他扶到车上,才逃回城中。当天晚上,公孙述就去世了。
第二天早上,延岑深知已无力抵抗,于是开城投降。吴汉进入城中,枭了公孙述的首级,送到洛阳,并斩杀公孙氏全部族人和延岑,又把宫室全部烧毁了。
此时,已是建武十二年(公元36),蜀地终于被平定了。之后刘秀又平定了勾结匈奴的卢芳,终于实现了全国的大一统。
蔡公曰
公孙述一夸夫耳,无他功能,乘乱窃据,但以僻处西陲,依险自固,故尚得苟延岁月,僭号至十有二年。及关东已平,王师西指,述不能用荆邯之策,空国决胜,乃徒豢二三刺客,戕来歙,害岑彭,何济于事?彼既不愿为降天子,何勿堂堂正正,与决胜负?成固甚善,败亦有名,仅恃此鬼蜮伎俩,暗杀汉将,汉将岂能一一被刺乎?来歙岑彭,不幸遇刺,而吴汉臧宫诸将,长驱直前,进捣成都,述尚欲死中求生,背城借一,卒至洞胸坠马,亡国覆宗。诈术果可恃耶?不可恃耶?