成汉政权是流民起义首领李雄在巴蜀所建立的,到李雄晚年,他将皇位传给了侄子李班。原来,在李雄年轻时,带兵打仗,头部受过伤,到老时,创伤突然复发,化脓溃烂,伤势越来越重。他的儿子们见父亲头部化脓溃烂,腥臭难闻,都躲得远远的,只有他的侄子李班耐心地服侍他。李雄见李班忠厚孝顺,便把皇位传给了他。可李雄的儿子们绝不会善罢甘休,李班在位不到一年,就被李雄大儿子李越给杀了。李越自己不敢做皇帝,便把他的小弟弟李期推上了皇帝的宝座。李期杀了二哥李霸、三哥李保,又将堂叔李寿的养弟李攸毒死,这引起李寿的不满,他起兵推翻了李期,自己称皇帝,并且杀死李期和李雄的其他子孙。成汉政权在宗室互相残杀中日益腐败下去。李寿即位后,把大成国改称汉国,所以历史上称李氏的政权为成汉。李寿称帝后,大兴土木,奢侈腐化,人民负担沉重,有的再次成为流民。李寿死后,其子李势即位,他更是残暴无比,只要他见到谁的财产多,谁的妻子长得漂亮,便找个借口把这人杀了,把财产和妻子据为己有。他重用小人,不许任何人给他提意见,老百姓和大臣们对他恨之入骨。李势依靠蜀地势险要,整日花天酒地,不做任何防备。347年三月,桓温率大军进攻成汉,顺利地攻占了成汉的都城成都,李势举手投降,成汉政权历时44年,至此而亡。
桓温消灭成汉,威信大增,桓温便提出要求北伐。当时,后赵石虎死,石氏子弟为争夺皇位而大相残杀,后赵统治摇摇欲坠,中原一片混乱。
349年六月,桓温乘机出屯安陆,并派将领经营北方,他上疏皇帝,要求率军北伐。这时后赵扬州刺史王浃也举寿春降晋,整个形势对东晋十分有利。但东晋政府害怕桓温势力过分强大,难以控制,威胁到皇权,不同意桓温亲自北伐,却派征北大将军、康帝褚皇后的父亲褚裒率众三万,进行北伐。褚裒率大军进驻彭城(今江苏徐州),北方老百姓蜂拥而至,每年投奔褚裒军队的都数以千计。北方群众翘首以盼,等待北伐大军的到来。时鲁郡山有五百多家老百姓起兵,要归附东晋,请求褚裒的支援。褚裒派督护徐龛前去迎接,结果在代陂被后赵军队打败,死伤大半。褚裒吓得逃回广陵,据守寿春的大将也烧毁军粮器械逃回。当时,黄河以北二十多万老百姓想渡河归附东晋,褚裒弃之不管,这些人被慕容皝和苻健的军队攻击,死亡殆尽,造成一次民族大灾难。褚裒也因北伐失败,忧愤而死。
褚裒死后,桓温再次提出要北伐,朝廷不同意,却派陈郡大族、扬州刺史殷浩为都督扬、豫、徐、兖、青五州诸军事,继续进行北伐。
殷浩受命后,就以收复中原为己任,派将领在江西开辟千顷良田,进行军粮储备。352年(永和八年),殷浩率军从寿春出发,正式进行北伐。因前锋谢尚被前秦将领打败,殷浩只好退回寿春。353年(永和九年),殷浩再次率众七万,从寿春北伐,想打到洛阳,修复皇家园陵。他以羌族酋长姚襄为先锋,又担心姚襄势力太大,对自己不利,屡次派刺客到姚襄军营中去行刺,结果姚襄临阵倒戈,殷浩军队大败,北伐中止。
殷浩连年北伐,屡战屡败,伤亡惨重,引起朝野上下的不满,桓温趁机弹劾殷浩的罪状,朝廷没办法,只好废殷浩为庶人。
殷浩被废后,桓温已完全掌握了朝廷内外军政大权,朝廷再也无法阻挡他北伐了,桓温就开始实现他的宿愿。
354(永和十年)二月,桓温率步兵骑兵四万,从江陵出发,出淅川(今河南淅川县均水),进攻关中苻健的前秦政权。另一路又派江陵水军进入均口(今湖北均县),至南乡,配合作战;还派梁州刺史司马勋出子午道(从关中到汉中的南北通道),进攻前秦。三路大军直扑前秦,桓温军队一路势如破竹,在蓝田和白鹿原两次大败前秦军队,一直打到长安东面的灞水。后秦主苻健派大司马雷弱儿率领全部精兵三万迎击晋军,自己只留下五千老弱病残的士兵,修筑深沟壁垒,死守长安城。当时,长安附近的老百姓久在胡族统治下生存,饱尝了战乱的痛苦,见桓温的军队打到灞上,他们万分高兴,纷纷拿着酒肉在路上迎候桓温。
桓温驻军灞上,没有乘胜继续进攻,采取观望等待的策略。一方面是军饷方面发生了困难,当时关中地区的春小麦马上就要成熟,桓温想等小麦熟后,收割关中小麦做军粮;另一方面,桓温北伐也有他私人的目的,他想以北伐来提高自己的威信,好进一步夺取司马氏政权。这一点,关中有识之士王猛看得非常明白。他曾到桓温军中去见桓温。他身穿粗布短衣,坐在那里,一面捉身上的虱子,一个一个地把它们挤死,一面侃侃而谈,分析着当前的形势。他从容沉着,旁若无人。桓温觉得他是个奇才,便问他:“我奉天子的命令,率精锐部队十万人,前来为关中人民除害,可关中地方的英雄豪杰至今还没有人来见我,这是什么缘故呢?”
王猛答道:“公不远千里而来,深入敌境,现在长安近在眼前,而公却不渡过灞水去进攻长安,大家看不透您的心思,所以不来投奔您。”
桓温见王猛才智过人,便想重用他,带他南下,而王猛没有同意,后投奔前秦苻坚的旗下,成为前秦著名的良相。
就在桓温犹豫之际,苻健将关中所有未成熟的麦苗全部割下,实行坚壁清野政策。桓温见军粮已没有着落,只好退兵。当走到白鹿原的时候,又被苻健大将苻雄大败,损伤一万多人。桓温只好将关中三千多户人家南迁,退还到襄阳。桓温的第一次北伐就这样结束了。
356年(永和十二年),桓温进行了第二次北伐。当时逗留在河南许昌一带的羌族酋长姚襄又进攻洛阳,桓温便再次从江陵出发,进行北伐。在伊水一带,屡败姚襄军队,姚襄率数千名骑兵向西逃走,桓温收复了洛阳。桓温进驻洛阳后,上疏给东晋皇帝,建议将都城从建康重新迁回故都洛阳,并让永嘉之乱后渡江南下的官员和百姓重返自己的家园。桓温的建议在朝中引起哗然,那些从北方南渡的门阀大族们坚决反对桓温的建议。北方虽然是他们的故乡,可是他们来到江南已数十年,已重新建好新的庄园,生活已安定下来。所以,他们宁愿朝廷偏安江南,过着苟且安逸的生活,也不愿意回到战乱纷纷、经济残破的北方。从太原南迁的北方士族孙绰就反对桓温迁都,他说:“晋末永嘉之乱以来,已经六十多年了,中原的河、洛地区已成废墟。南迁的北方士民,在江南定居也已经数代了,活着的人子孙繁衍,死了的人坟垄成行。一旦要他们离开江南,他们在南方的田宅在仓猝时间内卖不出去,同时,北行所用的船、车也没有人为他们准备。让他们舍弃江南的安乐之乡,返回到动乱的北方去,这的确是政府和决策者们应该慎重考虑的事情。”
孙绰的一番话代表了门阀大族们的心声,他们反对北伐,甚至主张以长江为界,放弃长江以北的广大地区。如王导从子王羲之,是著名的书法家,他就认为,南北以淮河为界已经不行了,干脆以长江为界罢了。大族们的这种苟且偷安的思想严重地影响了历次北伐,使北伐难以成功。
桓温见自己的建议被否定,桓温也不愿意留在洛阳继续北伐,为了更好地控制东晋朝政,他返回都城建康,留下一些将领守洛阳。365年(兴宁三年),北方慕容鲜卑所建政权前燕将领慕容恪攻下洛阳,桓温北伐所收复的地区再次丢失。
369年(太和四年),桓温进行第三次北伐。当时,东晋管辖下的河南许昌、汝南、陈郡、洛阳等地先后被前燕所占领,并且前燕势力越来越强大,要向西进攻关中地区。四月,桓温率军五万,从姑熟出发,进行北伐,打击前燕的嚣张气焰。由于反攻北方的基地河南失守,桓温北伐大军只好走今山东境地。当他们到达金乡(山东金乡)时,天气已十分炎热,干旱少雨,运送军粮的河道已经干涸,军队给养出现了问题。为解决军粮漕运,桓温下令在山东境内开凿了一条长三百多里,贯通汶水与黄河的运河,史称这条运河为“桓公渎”。这样,从江淮运粮的船只可以由水路,直接运到枋头(河南浚县)。前燕将领慕容垂、傅末波等率军八万与桓温相拒,双方大战于林渚(今河南郑州市境),前燕军大败。这年秋天,桓温进军到枋头,并直逼前燕首都邺城。前燕君臣乱成一团,一面派人向前秦求援,希望前秦从洛阳出兵,牵制晋军;一方面派慕容垂率兵五万迎击,并做好迁都前燕根据地和龙(今辽宁朝阳)的准备。
前燕大将慕容垂是一名智勇双全的大将,他御兵有方,屡次打败桓温的军队。而桓温军队因长时间作战,非常疲乏,所以屡战屡败。这时,桓温军队的粮食给养又发生了问题。
桓温虽开凿了“桓公渎”运输军粮,可进入秋季,北方雨季已过,天气干旱少雨,水位下降,河道干涸,船只无法通行。原来储备的军粮快用光了,而后方的军粮又运不来,没办法,桓温只好退兵。来时走的是水路,现在水路无法通行。桓温没办法,只好把兵船烧掉,并丢弃辎重铠甲,轻装由陆路退兵。大军自东燕县(河南延津)经仓桓(河南开封),步行七百多里,到了襄邑(今河南睢县西)。慕容垂见桓温由陆路退兵,预料到桓温必走襄邑,便令慕容德率一支精悍骑兵四千人埋伏在襄邑东涧中,自己则率八千骑兵在桓温大军后面跟踪前进。当桓温军队进入襄邑时,慕容垂和慕容德同时进攻,前后夹击,桓温军队大败,死亡三万多人。当桓温军队退逃到谯(今安徽邑县)时,又遭到前来援助前燕的前秦军队的阻击,晋军又死亡一万多人。这样,桓温的第三次北伐以彻底的失败而告终,东晋所收复的淮河以北的土地又重新丧失,从此以后,桓温就不再北伐了。
东晋的北伐,从祖逖到桓温,由于各种原因,都以失败而告终,所收复的土地也都再次丧失。但北伐是有一定进步意义,它给北方少数民族军事贵族以沉重打击,使他们无力向江南进军,这样就保护了江南地区的和平环境,使江南经济在相对和平的环境中发展,广大的江南人民也能相对地和平生活。