同年八月,桓温兵至伊水(在今洛阳城南)。羌族首领姚襄正围困洛阳,闻桓温来攻,撤军而回,在伊水之北拒水而战。桓温亲自披甲督战,命晋军结阵而进,终于大破姚襄,收复洛阳。他进入金墉城,拜谒先帝皇陵,并设置陵使修复皇陵。不久,桓温班师南回,并将三千多家归降百姓南迁至长江、汉水一带。
桓温返回荆州后,先后命部将剿平蛮贼文卢、妖贼李弘,将首级传送建康(今江苏南京)。但与此同时,收复的司隶、豫州、青州、兖州等地再次失陷。升平四年(360年),朝廷封桓温为南郡公,并将其原有爵位临贺郡公降为县公,封授给其次子桓济。
移镇姑孰
隆和元年(362年),前燕将领吕护进攻洛阳。河南太守戴施弃城而逃,冠军将军陈祐遣使告急。五月,桓温派竟陵太守邓遐率三千人协助守城,再次上表要求迁都洛阳,并建议将永嘉之乱后流亡江南者全部北徙,以充实河南之地,皆被朝廷驳回。后来,朝廷又以交州、广州偏远为由,免去桓温的交广二州都督,改授其为都督并司冀三州诸军事。桓温上表推辞。
兴宁元年(363年),朝廷加授桓温为侍中、大司马、都督中外诸军事、假黄钺,赐其羽葆鼓吹一部。二年(364年),桓温率水师进驻合肥,准备北伐。五月,朝廷进封桓温为扬州牧、录尚书事,遣侍中颜旄宣旨,召其入朝参政。桓温以中原尚未恢复为由推托。朝廷不许,再次征桓温入朝,但当桓温赭圻(今安徽繁昌西)时,却又尚书车灌前来制止。桓温遂驻军赭圻,上表辞去录尚书事一职,只遥领扬州牧。兴宁三年(365年),前燕再次攻打洛阳,陈祐出逃。司马昱得知,与桓温在洌洲(在今安徽和县)会面,命他移镇姑孰(今安徽当涂),准备征讨之事,但最终因晋哀帝驾崩而作罢。
太和三年(368年),桓温获加殊礼,位在诸侯王之上。遂驻军赭圻,上表辞去录尚书事一职,只肯遥领扬州牧。
三伐前燕
太和四年(369年)三月,徐兖二州刺史郗愔致信桓温,表示愿意与他共同辅佐王室,请求率部出河上。当时,北府兵卒悍勇,桓温不愿让郗愔掌握京口(今江苏镇江)重镇。郗愔之子郗超为桓温参军,暗中将原信毁掉,并以父亲的名义伪造信件,自称老病,请以闲职休养。桓温便顺势改任郗愔为会稽内史,自领徐兖二州刺史,兼并了郗愔的军队。