咸康七年(341年),桓温任琅琊太守。永和元年(345年),桓温任荆州刺史,取代庾翼兵权。次年(346年),桓温趁成汉内部不稳之际,率军沿长江直上,平定蜀地,汉王李势投降,拜征西大将军,封临贺郡公。永和五年(349年)四月,后赵主石虎死,北方再度混乱,桓温多次请求北伐未果。永和六年(350年),朝廷以殷浩为中军将军、都督五州诸军事,委以北伐重任,以此抗衡桓温。结果殷浩大败而回,桓温遂掌大权。
桓温锐意北伐,前后有三次。第一次进兵,是以关中长安为目标。晋穆帝永和十年(354)二月,桓温统步骑四万由江陵出发。水军自襄阳入均口(今湖北均县)至南乡(今河南浙川南),步兵自浙川(今河南西峡)趋武关。秦兵五万由太子苻苌、丞相苻雄等率领,在峣柳(今陕西蓝田东南)拒温。两军大战于蓝田,秦兵大败。桓温进军至灞上(今西安东北)。三辅郡县皆来降,关中人民争持酒肉劳军。桓温兵到关中,时在五月,正是麦收时节。他原希望就地收麦,解决军粮问题。秦王健采取坚壁清野的对策。桓温军中乏食,不得不撤退。秦兵从后追击,温军屡败,死亡以万数。
第二次北伐,是进兵洛阳。穆帝永和十二年(356年)七月,桓温自江陵出发。八月,至伊水,大败姚襄,收复洛阳。桓温极力主张还都。但一般朝臣已安于江南的享受,无意于还都洛阳,举朝反对桓温的还都计划。桓温军还以后,司、豫、青、兖诸州又为燕夺去。公元365年洛阳也为燕所攻取。
第三次北伐是伐燕。海西公太和四年(369年)四月,桓温帅步骑五万,发自姑孰(今安徽当涂),经兖州北伐燕。六月,桓温至金乡(今山东金乡北)。天旱,水道绝,使人凿巨野三百里,引汶水会于清水,引水军自清水入黄河。七月,大军至枋头(今河南滑县西南)。枋头离燕都邺(今河北临漳西)约二百里。邺中人心惶惶,燕主和大臣慕容评大惧,谋逃回龙城。慕容垂说:“臣请击之,若其不捷,走未晚也。”。垂与征南将军慕容德帅众五万拒温。燕主一面又派人求救于秦,许割虎牢(今河南荥阳西北)以西地予秦。秦王苻坚用王猛策略,由邓羌帅步骑二万救燕。出浴阳,趋颖川。桓温由水路进兵。水路偏在东方,逆水运粮,时间长,困难重重。他驻兵枋头后,寄希望于打通石门(今河南颍阳北)水道;通过谯(今安徽毫县)、梁(今河南商丘南)运粮。慕容垂知道这条线对桓温的重要,派慕容德领骑兵一万五千屯石门,又以燕豫州刺史李卦帅州兵五千断温粮道。桓温使晋豫州刺史袁真攻谯、梁,开石门以通水运。袁真攻下了谯、梁,而不能攻开石门。桓温粮尽,粮路又断,遂不得不退。他焚舟、弃辎重、铠仗自陆路奔还。燕军乘胜追击,温军死者三万余人。援燕的秦军,邀击温军于谯,温军死亡又以万计。冬十月,桓温收集散卒,屯于山阳。枋头之战,是历史上一次大战,桓温又一次大败。
桓温长期掌握大权,素有不臣之志,颇羡王敦之举。咸安元年(371年),率军攻寿春(今安徽寿县),俘斩袁瑾。同年,桓温废帝司马奕为东海王,改立简文帝,以大司马专权,次年,文帝死,桓温有代晋之谋,不久病死,由其弟桓冲代位。