朝廷早朝时,收到奏折征西大将军桓温于永和十年(354年)二月己丑日,率军北伐前秦。他亲率步骑四万自江陵出发,由水路自襄阳入均口(今湖北均县西),然后自淅川(今河南淅川东)直趋武关(今陕西丹凤东南),同时命梁州刺史司马勋兵出子午道,合击秦军。请求朝廷再派兵从徐州出发监视燕国行动,防止慕容氏偷袭荆州后方。
晋军历经数次血战,生擒前秦将领郭敬,击退淮南王苻生,顺利进入关中。秦皇帝苻健命苻苌、苻雄、苻菁等将领率五万军队屯兵峣柳(今陕西商县西北),以阻挡晋军。
四月己亥日,桓温在蓝田县与苻苌等军大战,虽然苻生单骑突陈杀伤不少晋兵,但晋兵在桓温的统率下仍大败秦兵;同时桓冲又在白鹿原击败苻雄军,桓温在大败前秦军队后就继续向长安进发,进据灞上。当时苻苌等军退屯城南,苻健于是尽发精兵三万人,在大司马雷弱儿等人率领下与苻苌会合,只留六千老弱士兵留守长安小城。
当时前秦首都长安危急,三辅各郡县都来向桓温归降,桓温心情大悦,出枨安抚并让居民恢复原来生活。当时居民又争相以牛酒劳军,又夹道观看前来的军队,更有老人跪地不起,流着泪说:“不图今朝复睹官军。”桓温泪流满面,说到:“今我带王师必收复故土,驱杀胡人,还大晋子民一个安定的天下。”
下面高呼:“万岁!万岁!晋军必胜!晋军必胜!”
在万民同庆时,帐下几个校尉面上流出几分惊恐,这恒温现在声望过高,真的打破长安城,掌握一半的天下,恐怕又多了个曹孟德吧!
桓温退入帐内,召集众将,说:“现在我们有两条路可走,一条直接急攻长安;一条驻屯灞上,稳固后方,慢慢图之。”
面对这个形势,顺阳太守薛珍说到:“现在贼军被吾军击溃,士兵低落,吾军应直逼长安,一举收复西京,必威震四方的胡人,天下又可以回归汉地。
桓温皱了皱眉头,说到:“当年诸葛孔明出祁山伐魏,只有一路,而今吾军从荆州与汉中两路大军同时伐秦,不必急于求成,寻苻健的主力奸之。
薛珍又想言,桓温摆摆手,说到:“明日一早全军开拨驻屯灞上,寻苻健主力聚而奸之,以决后患。”
众将齐喊到:“遵命。”
大军来到灞水,就没有进渡灞水,一直与秦军相持,桓温打算收割当地的麦子作军粮以继续对峙。
符健命人大量抓捕当地的汉人,更抢先一步收割麦子,而且坚壁清野,令桓温陷入缺粮困境。在战事不利和缺粮之下,桓温唯有在六月丁丑日迁关中三千多户人南归。苻苌见桓温退兵,更领兵追击,至潼关时已屡败晋军,伤亡数以万计。冠军将军邓遐一人殿后射伤苻苌,前秦军大惧,不敢再追,晋军才得以安然返回荆州。当时薛珍以桓温被逼退兵,当众称许自己之勇而指责桓温太慎重,于是被桓温指使邓遐所杀。
另一方面,进攻陈仓的司马勋和王擢虽攻破陈仓,但亦被苻雄、苻法、苻坚父子三人所败,司马勋退回汉中而王擢回略阳。北伐至此结束。