建武八年春天,中郎将来歙与征虏将军祭遵奉命西征,进攻略阳。祭遵在途中得病,返回都中。来歙率领两千精兵,伐山开路,直抵略阳城下。略阳的守将叫金梁,事先没有防备,等听到城外的鼓声,才登城眺望,谁知脚还没站稳,头已经不见了。城中没有了主将,逃的逃降的降,不一会儿,来歙便占领了略阳城。逃跑的士兵禀报隗嚣,隗嚣吃惊地说:“这军队是从哪里来的?怎么如此神速呢?”话还没说完,王元、行巡等人已经站出来,请求立即发兵。隗嚣派王元前往陇坻,行巡守住番须口,王孟堵住鸡头道,牛邯屯兵瓦亭,自己率兵一万围攻略阳。略阳是西州要害,被来歙攻破后,光武帝非常欢喜,笑着对从将说:“来将军攻破略阳,便是捣入隗嚣的心脏,心脏一坏,肢体自然就溃散了!”
这时,吴汉等人上书说正出兵援助来歙。光武帝看了,懊恼地说:“谁叫他前去援助?隗嚣失去这么重要的城池,必派精锐的部队前去攻打。略阳城池坚固,短时间内不会拿下。等隗嚣的部下困倦了,才好乘危进攻啊!”说着,就派使臣追回吴汉等人,只让来歙单独防守。隗嚣率兵把略阳城团团围住,四面猛扑,还是不能攻下。公孙述也派部将李育、田弇帮助隗嚣攻打来歙,还是不能攻克。
过了两三个月,略阳城仍安然无恙。隗嚣心急如焚,伐木筑堤,决水灌城,费尽心思。来歙领兵坚守,随机应变,誓死不肯离去。光武帝听说略阳危急,下诏亲征。光禄勋郭宪阻止道:“东方刚刚平定,陛下不能远征。”光武帝摇头不答,郭宪拔出佩刀,砍断銮舆中的缰绳,光武帝还是不肯听从。走到漆邑,众将都说皇上不应深入,光武帝犹豫不决。恰逢马援连夜到来,报名求见,光武帝立即召他进来商议军情。马援说:“隗嚣的将士已经快瓦解了,只要陛下的大军一到,必破无疑。”接着又在光武帝面前详细陈述哪里可攻,哪里可守,说得明明白白。光武帝醒悟道:“此计甚妙!”第二天早上,就率军前进。凉州牧守窦融率领五郡太守及俘虏小月氏等番兵前来相会,共计数万人,军用物资五千多车。光武帝大摆酒席款待窦融,并犒劳他的部下。两军合兵攻打陇地,分头深入,势如破竹。隗嚣接到报告,自知不能抵敌,退回天水,略阳城得以解围。大中大夫王遵自归汉以后,很得皇帝的宠信。此次随驾西征,因为他与隗嚣的部将牛邯关系很好,就奏明光武帝,写书信招降牛邯。
牛邯看到书信后,觉得西州最终打不过汉兵,于是投降汉朝。光武帝慰问一番后,封他为大中大夫。大约过了一个月,隗嚣的十三个部将、十六座城池、十多万士兵全部投降。隗嚣非常惊慌,急忙派王元到蜀地乞求援助,自己带领妻儿逃往西城,投靠大将军杨广。蜀将田邽、李育,一时无法回到蜀地,只好退回上邽。
光武帝到了略阳,来歙出郊迎接。进城之后,大摆宴席。因来歙立了大功,光武帝就让他坐在上手,又赐给来歙的妻子布帛一千匹。紧接着,光武帝进兵上邽,派人通告隗嚣:“你如果束手就擒,定让你们父子相见,既往不咎。”隗嚣仍然不肯答复。光武帝传诏诛杀隗恂,派吴汉、岑彭围攻西城,耿弇、盖延围攻上邽。并加封窦融为安丰侯,窦融的弟弟窦友为显亲侯,此外五郡太守,也都被封侯。
光武帝调度各军,准备即日平定隗嚣,然后班师回朝。忽然接到留守都中的大司空李通的书信,说颍川盗贼四起,河东守兵叛乱,京师骚动,请陛下立即回去。光武帝不禁叹息道:“真后悔没有听从郭宪的话,现在才觉得费事了!”说完,就从上邽出发,昼夜东行,马不停蹄。途中传话给岑彭等人:“这两座城如果能攻下,便可领兵向南攻击蜀地了。人生苦就苦在不知足,平定陇地之后,又希望得到蜀地,发一次兵,头发全白了,不知何日能肃清啊!”等回到洛阳,前颍川太守寇恂已做了执金吾,跟随光武帝左右。光武帝对他说:“颍川挨近京师,应赶快平定叛乱,朕想你以前做颍川太守时,盗贼望风而逃,现在让你前往,定能平定颍川。朕知道你忠心忧国,希望不要推辞!”寇恂答道:“颍川百姓向来善变,听说陛下亲自攻打陇、蜀,难免被匪徒迷惑。如果陛下先声夺人,盗贼必定惶恐,怎敢抗命?臣愿意做前锋。”光武帝于是御驾南征,让寇恂做前锋。
到了颍川,盗贼果然沿路下跪投降。寇恂禀明光武帝,只诛杀了几个盗贼的头目,其余的全部赦免。郡中父老都出来欢迎寇恂,并到御驾前跪下,乞求让寇恂留在颍川一年。光武帝勉强听从众人的请求,自己率领士兵回宫。
当时,东郡济阴县也有盗贼。警报传到都城,光武帝派大司空李通与大将军王常,领兵前去平盗。又因东光侯耿纯曾做过东郡太守,很有威信,于是封他为大中大夫,让他与李通、王常一同前往东郡。东郡人听说耿纯到来,无不欢迎,盗贼九千多人,也都到耿纯那里乞降,东郡不战而平。光武帝令耿纯为东郡太守。耿纯连任五年,境内太平。耿纯后来病死在任上,光武帝赐谥成侯。
吴汉、岑彭围住西城,一个多月还没有攻下,光武帝传诏军中,叫他们遣回羸弱的士兵,只留下精兵,免得白白地消耗粮食。吴汉急于邀功,不肯听从,又探知杨广病死,更想全力攻城。士兵久经战乱之苦,难免会有人逃亡。岑彭因打了这么久也没有攻克西城,就想出一计,分兵到谷水下流,用土堵住河水。谷水本来由西至东,绕过西城,如今下流被堵住,水自然向城中灌入,越涨越高,距城头仅有一丈多。守兵虽然害怕,却还不肯出来投降。突然听到城南山上鼓声响起,一大群勇士冲了下来。前面一杆大旗上,赫然写着一个大大的“蜀”字,勇士们边冲边喊:“百万蜀兵到了。”接着,直逼汉军的营垒。汉军猝不及防,顷刻被冲破,士兵多半逃散。吴汉、岑彭不能支持,领兵退去。谷水下流的汉兵,也逃得精光。其实蜀兵只有五千人,是王元借来的,用了一条虚喝计,竟把汉军吓退。王元见此计得胜,马上带人追赶汉兵,汉兵已经缺粮,又担心蜀兵大举到来,无心恋战。吴汉下令把军用物资烧毁再后退。王元追来后,多亏岑彭亲自断后,众人才得以东归。
校尉温序被苟宇抓获,逼迫他投降隗嚣,温序宁死不屈,自杀身亡。王忠和温序一同被抓,苟宇却让他把温序的尸体送回洛阳。光武帝赏赐墓地给温序,并召温序的三个儿子为郎官。
自从吴汉等率兵退回,耿弇、盖延撤围,只有祭遵还留在汧城。建武九年,祭遵病死营中。噩耗传到洛阳,光武帝悲痛异常,令冯异到祭遵的军营接任,并派人护丧东归。祭遵为官廉洁,克己奉公,所得的赏赐全部发给士兵。他的妻子也很节俭,曾生过一个男孩,没有成人便夭折了。祭遵的兄长祭午曾买了一女子送给祭遵,让他纳为小妾,祭遵为国忘家,不肯接受,临死时也没有提起家事。尸体运到河南,光武帝亲自前去哭奠,赐谥曰成。葬后顺路慰问祭遵家属,祭遵的妻子出来拜见。光武帝见祭遵家没有婢妾,室内萧条,感伤地说:“祭遵忧国奉公,不愧是一流名将啊!”
冯异接任后,将士们心悦诚服,还像以前一样防守。隗嚣不愿住在西城,于是移居冀邑,又派兵攻占各城,安定、北池、天水、陇西尽归隗嚣所有。因粮饷不继,隗嚣积劳成疾,不久去世。部将王元、周宗等人,立隗嚣的小儿子隗纯为王,屯兵冀城,仍向公孙述称臣,乞求援助。公孙述的部将田弇、李育已经回到蜀地,公孙述又派田弇北行,将李育留下,让赵匡与田弇一同到冀城援助隗纯。汉将冯异奉诏讨伐,双方相持不下。公孙述想大举进攻汉军,为隗纯解忧,特派翼江王田戎、大司徒任满、南郡太守程泛,率兵数万攻入巫峡,连拔夷陵、夷道二县,占据荆门、虎牙二山。
汉大司马吴汉还屯兵长安,光武帝特派来歙为监军,马援为副将,观察陇蜀的形势,以决定攻守。来歙经过深入考察,为光武帝献上一计。光武帝依据来歙的计策,令人准备六万斛谷子,用四百头驴运到汧城,作为西征军粮。到了秋高马肥的时候,特派来歙为统帅,率同征西大将军冯异、建威大将军耿弇、虎牙大将军盖延、扬武将军马成、武威将军刘尚等,一同进攻天水。冯异已与蜀将田弇、赵匡交战几十次,蜀兵伤亡过半。此次耿弇等率兵前来,士气倍增,不费吹灰之力便打败蜀兵,阵斩田弇、赵匡。
隗纯住在冀城,让王元等屯兵落门,依险拒守。高平第一城,也被隗嚣的部将高峻占据,不肯投降汉朝。于是冯异等人进攻落门,耿弇等人进攻第一城。两路进攻,攻了一年还没有攻下,冯异在军中抱病去世。光武帝赐谥节侯,令冯异的长子冯彰袭爵,又打算亲征西州。执金吾寇恂已回到洛阳,这次也随驾前往,来到关中,寇恂叩头阻止说:“陛下应先到长安,安定、陇西听说御驾驻扎在长安,必然震惊,自会前来投降。陛下亲自冒险,实在不是上策,不可重蹈颍川的覆辙啊!”光武帝不以为然,直抵汧城,命寇恂招降高峻。
高峻本来已被马援说服,被封为关内侯,官至通路将军,所以汉军出入,高峻常作向导。吴汉等人战败回到长安后,高峻又占据高平,严防死守。寇恂奉诏招降高峻,高峻派军师皇甫文出去迎接,双方辩驳一番,惹恼了寇恂,令左右绑住皇甫文,准备将他处以死刑。皇甫文反唇相讥,众将向寇恂进谏说:“高峻拥兵一万,陇地连年攻不下,现在正要招降高峻,为何反要杀掉他派来的使臣呢?”寇恂瞪着眼睛说:“要斩便斩,怕他做什么?”说着,就下令把皇甫文处斩,让随从把他的人头带回,并让随从传话说:“军师无礼,已经就地正法,想投降就投降,不投降你就固守吧!”这几句话传过去,高峻竟开城投降,迎接汉军。众将莫名其妙,寇恂解释说:“皇甫文是高峻的心腹,我看他没有投降的意思。如果将皇甫文放回去,反而有损军威,只有杀了他,敲山震虎,高峻才能投降。”众将都佩服地说:“将军神机妙算,我们都比不上啊。”
中郎将来歙因落门还没有攻破,就与耿弇、盖延等鼓动将士,不停猛扑。守兵难以支撑,都有投降的意思。周宗、行巡、苟宇、赵恢拥着隗纯出来投降,只有王元领着部下,突出重围,投奔蜀地。陇地于是平定。光武帝下令将隗氏宗族迁居到京城,自己率领寇恂等人回朝。后来隗纯带着十多人逃走,走到武威时,被地方官抓住处死。
建武十一年春,光武帝派大司马吴汉率同刘隆、臧宫、刘歆讨伐蜀地。