永和十年(354年)二月,桓温率军北伐前秦。他亲率步骑四万自江陵出发,由水路自襄阳入均口(今湖北均县西),然后自淅川(今河南淅川东)直趋武关(今陕西丹凤东南),同时命梁州刺史司马勋兵出子午道。晋军历经数次血战,生擒前秦将领郭敬,击退淮南王苻生,顺利关中。
同年四月,桓温进驻灞上(今陕西西安东)。苻苌等部秦军退守长安城南,前秦皇帝苻健自领羸兵六千固守内城,附近郡县更是纷纷来降。桓温抚喻百姓,使其安居复业。关中百姓牵牛担酒沿路迎接,许多老人更是疼哭失声:“没想过今天还能再次见到官军!“
桓温关中时,正值麦收时节,他就打算就地收麦,以解决军粮问题,于是屯兵不前。苻健闻听晋军收粮,猜到恒温军中粮草不足,遂采取采取坚壁清野的方式,使得晋军粮秣不继。六月,桓温被迫撤返江陵,并将关中三千多户百姓一同迁走。秦军随后趁势追击,晋军大败,伤亡甚众。
桓温北伐期间,隐居关中的王猛曾前来拜见,并大谈当世之事,旁若无人,深得桓温的赏识。桓温撤退时邀请王猛一同南下,并任命他为高官督护。但王猛却不肯跟随,留在了北方。
永和十二年(356年)二月,桓温数次上表,请求朝廷移都洛阳,修复园陵,但都没有得到朝廷同意。不久,朝廷拜桓温为征讨大都督,督司、冀二州诸军事,负责征讨事宜。七月,桓温自江陵出兵再次北伐,并命督护高武据守鲁阳(今河南鲁山),辅国将军戴施屯驻河上,进逼许昌、洛阳。同时,他上疏朝廷,请求徐、豫二州出兵入黄河,配合作战。
同年八月,桓温兵至伊水(在洛阳城南)。羌族首领姚襄正围困洛阳,闻桓温来攻,撤军而回,在伊水之北拒水而战。桓温亲自披甲督战,命晋军结阵而进,终于大破姚襄、收复洛阳。他金墉城,拜谒先帝皇陵,并设置陵使修复皇陵。不久,桓温班师南回,并将三千多家归降百姓南迁至长江、汉水一带。
桓温返回荆州后,先后命部将剿平蛮贼文卢、妖贼李弘,将首级传送建康(今江苏南京)。但与此同时,收复的司隶、豫州、青州、兖州等地再次失陷。升平四年(360年),朝廷封桓温为南郡公,并将其原有爵位临贺郡公降为县公,封授给其次子桓济。
隆和元年(362年),前燕将领吕护进攻洛阳。河南太守戴施弃城而逃,冠军将军陈佑遣使告急。五月,桓温派竟陵太守邓遐率三千人协助守城,并上表要求迁都洛阳。朝廷仍不同意,同时以交州、广州偏远为由,改授桓温为都督并司冀三州诸军事。桓温上表推辞。兴宁元年(363年),朝廷加授桓温为侍中、大司马、都督中外诸军事、假黄钺,赐其羽葆鼓吹一部。
兴宁二年(364年),桓温率水师进驻合肥,准备北伐。五月,朝廷进封桓温为扬州牧、录尚书事,并两次召其入朝参政。桓温只得入朝,但行至赭圻(今安徽繁昌西)时,朝廷却又命尚书车灌前来制止。他遂驻军赭圻,上表辞去录尚书事一职,只肯遥领扬州牧。兴宁三年(365年),前燕再次攻打洛阳,陈佑出逃。司马昱得知,命桓温移镇姑孰(今安徽当涂),准备征讨之事,但最终因晋哀帝驾崩而作罢。
太和四年(369年)三月,徐兖二州刺史郗愔致信桓温,表示愿意与他共同辅佐王室,请求率部出河上。当时,北府兵卒悍勇,桓温不愿让郗愔掌握京口(今江苏镇江)重镇。郗愔之子郗超为桓温参军,暗中将原信毁掉,并以父亲的名义伪造信件,自称老病,请以闲职休养。桓温便顺势改任郗愔为会稽内史,自领徐兖二州刺史,兼并了郗愔的军队。
同年四月,桓温亲率步骑五万,与江州刺史桓冲、豫州刺史袁真一同北伐前燕。他率军攻湖陆,擒获-->>