从永和五年石虎去世、桓温驻屯安陆,一直到永和十年,在这将近五年中,桓温一直养经蓄锐,以静制动,消耗朝廷的势力,使得褚哀死去、谢尚大败、殷浩被废,最终让自己成为东晋政坛中最有实力的人物。不过,由于桓温目前并没有实际掌握徐州和豫州的部队,因此,他左右中枢的作用也并非无与轮比。这些年来,桓温一直无意于北伐,永和五年(公元349年)九月,司马勋第一次进入关中,那时石虎刚刚死去,"三辅豪杰多杀守令以应勋,凡三十壁,众五万人"。永和七年(公元351年)四月,司马勋步骑三万再次北伐,与苻健交战于五丈原,此时,前秦立足未稳,这两次机会都十分难得,然而桓温主力却一直未动。那么,如今,如果依然扬言北伐而无实际行动的话,将无益于自己威望和实力的上升,在这种请况下,桓温开始实施他的第一次北伐行动。
原冉魏徐州刺史降将周成投降东晋之后,就被安置在南阳。当得知桓温即将率军北上的消息,周成担心桓温借北伐之机而行兼并之实,惊恐之下,他率军反叛,离开南阳,北上攻陷了东晋河南太守戴施占领的洛阳,戴施则往东退守鲔渚(今河南省巩义市西南)。
永和十年(公元354年)二月十一日,东晋征西大将军桓温率领步骑四万,从江陵(今湖北省江陵县)出发开始北上。桓温的计划是∶全军直抵襄阳,然后沿汉水逆流而上,越过均口(今湖北省丹江口市),进入顺阳(今河南省南阳市淅川县),过武关(今陕西省丹凤县东),攻克上洛郡(今陕西省商洛市商州区),再越晓关(今陕西省蓝田县南二十里),进入关中平原。
桓温的这一路线,也是东南势力进攻关中的主要路线。不过,早在去年,当张遇政变引发长安地区大乱之后,前秦丞相苻雄回到长安,他做的第一件事不是立即出兵平叛,而是命令平昌干苻菁迅速出兵南下。夺取了上洛郡(今陕西省商洛市商州区)。并在丰阳川(今陕西省山阳县)设立了前秦的荆州刺史府,任命步兵校尉郭敬为荆州刺史,虽然有"通关市,来远商"的目的,但其主要目的还是为了有效地防止可能来自东晋方向的打击。
第二年一月,也就是在桓温发兵北上的前一个月,苻雄又攻下长安西南的司竹,胡阳赤逃往长安东面的灞城,依附呼延毒。在桓温北伐之前,前秦已经相继剪灭了三处叛军,目前只剩下了灞城的呼延毒、胡阳赤和在雍城(今陕西省凤翔县)的乔秉。
桓温的部队按照计划朝长安方向进发,桓温另外命令梁州刺史司马勋率军从子午谷趋长安,配合主力部队作战。桓温的水陆大军在淅川会合,一举攻下了通往关中的要隘——武关。然后,桓温派部将往西南,进攻上洛郡的治所丰阳,抓获了前秦荆州刺史郭敬,而主力部队则继续北上,进攻青泥。与此同时,东晋梁州刺史司马勋的部队也出现在长安以西地区,四处劫掠,而前凉的秦州刺史王擢也趁机东下,进攻陈仓(今陕西省宝机市陈仓镇),响应桓温。
时年三十八岁的前秦皇帝苻健命令太子苻苌、丞相苻雄、淮南王苻生、平昌王苻菁、北平王苻硕率众五万,屯于蓝田东南。
蓝关古道既是防卫来自东南威胁的最后一道关隘,也是关中势力发兵东南必经的第一要塞,具有极其重要的军事战略意义。
四月二十二日,前秦与晋军在此展开了一场惨烈的战斗。战斗中,前秦皇太子苻苌为流矢所中;前秦准南王苻生,骁勇异常,史称其"力举千钧,手格猛兽,走及奔马,击刺骑色,冠绝一时"。看到哥哥被晋军色伤,苻生大怒,拍马冲入乱军之中,单人出入晋军阵营十几次,斩杀桓温部将应诞、刘泓等十几人。晋军死伤上干。桓温亲自督战,晋军殊死搏斗,前秦部队大败,苻生率军退去。而桓温最小的弟弟桓冲也在蓝田县西的白鹿原击败了前秦丞相苻雄。
四月二十五日,桓温的北伐军一直进抵长安东面的灞上(今陕西省西安市长安区东,接蓝田县界,即白鹿原),苻苌等军退至长安城南扎下大营,苻健退守长安小城,身边只留下六千老弱残兵,另外凑足了三万经锐作为预备队,派遣大司马雷弱儿等人率领,与苻苌等人合兵一处,准备与桓温决战。
晋军驻扎在灞上,三辅郡县全部都投降了晋朝,桓温发布布告,让百姓恢复正常的生产生活。关中百姓争先恐后地牵着牛,拿着酒犒劳王师,男女夹道观看大军。不少老人流下了眼泪,说∶"没想到今日能再看到官军!"
此时,桓温的兵力对前秦并不具备压倒优势,甚至在人数上还稍逊一些,以旗鼓相当之兵力野战尚可求胜,而以之攻城,则捉襟见肘,这是桓温不敢渡过灞水的根本原因。
桓温部将顺阳太守薛珍是一员猛将,他一直处于东晋边境,多次在顺阳击退前秦的进攻,他对桓温建议大军渡过灞水,径直进B长安城下与前秦军队决一死战,但是桓温不从。于是,薛珍不顾命令,单独率领本部人马渡过了灞水,斩获敌人甚众。虽然如此,此时的桓温顾虑却很多,依然不敢全师渡河,决一战而定输赢。
就在桓温滞留在灞上的时候,前秦苻健并没有闲着。他腾出手来,采取先弱后强、各个击破的战术,命令丞相苻雄率领七千经锐骑兵,南下子午谷驰袭东晋司马勋的梁州部队,司马勋战败,退往女娲堡(今地不详)。击退司马勋、暂时解除被两面夹击的困境之后,苻健又命令苻雄等人进攻晋军据守的白鹿原,双方在白鹿原再次展开了一场殊死搏斗,第二次白鹿原会战,晋军大败,被斩杀了一万多人,桓温弟弟桓冲被前秦军队重重包围,命在须臾。
就在这千钧一发之时,只见晋军阵中杀出一员猛将,桓温看去,乃是自己的三弟桓豁长子桓石虔。桓石虔看到自己的小叔桓冲被围,他纵马杀入重围,将桓冲从万众之中解救出来,前秦士兵无人敢抗。由于桓石虔此战的勇猛,致使在此后的很长时期内,北方地区,有人得了疟疾,别人在其身边大呼∶"桓石虔来了!"总能将病人吓得痊愈。
在出兵之前,桓温计划可以因粮于敌,然而,前秦皇帝待健听说桓温北伐的消息,就提前实施了坚壁清野的策略,将秦地的麦苗全部割去,此时已经到了麦熟的六月,但是秦地田野一片荒芜,根本看不到成熟的麦子。从二月至今,桓温所部已经出征了三个多月,军粮开始不足,此时白鹿原会战又战败。在这种请况下,桓温下令全军撤退。
永和十年(公元 354年)六月一日,桓温大军迁徙关中三千户居民,开始往东撤退,在灞城的前秦叛将呼延毒也率众一万跟随晋军一起东还。前秦太子苻苌等人率军追击,从灞上至潼关一路上两军多次交战,而撤退中的晋军再无战心,屡战屡败,等到晋军抵达潼关的时候,桓温的北伐军前后又损失了上万人。到潼关之后,顺阳太守薛珍埋怨桓温持重,不敢进B长安,并在众人面前显示自己的骁勇,薛珍此举让桓温恼羞成怒,下令将其诛杀。在人才寥寥的乱世之中,桓温诛杀薛珍,实属可惜。
至于桓温的第一次北伐究竟是胜利还是失败了,这很难说清楚。如果以消灭前秦为目的的话,此次作战东晋寸土未得反而死伤二万余人,即使算上投奔的呼延毒的一万部众和三千户秦地民众,最多也只能算是打了个平手。不过,此次北伐毕竟是东晋主力第一次踏上关中土地,对桓温来说扩大了一定的政治影响,而且前人总以关中老者那句"不图今日复见官军"来增强桓温此次伐秦的效果,但实际上晋军仅仅停军灞上两月,然后就败归了。
不过,桓温提高自身声望的目的确实是达到了,而且在此战之后,桓温就夺取了他梦寐以求的江州。