北伐中原
在东晋成立后,南迁的晋人莫不希望发动北伐,收复在北方沦陷的家园。但由于世族已安居江南,南方丰富的资产使得重返北方的意愿不高。但是东晋建立后,依然进行了多次的北伐 [45]。
东晋初期,朝廷采取以攻为守态度抵御北方 [46]。317年祖逖意图北伐,晋元帝给予充分支持,不仅从库存数千匹布帛中取出三千匹支援,晋元帝命祖逖相机收复中原。他招募流民建立军队北上,晋元帝还先后派自己的次子和司马飏出兵配合祖逖 [12],并与当地坞堡合作,最后成功收复黄河以南领土,与石勒隔河相持。
但由于东晋发生内乱,朝廷于321年派戴渊为征西将军,都督各军守寿阳,镇西将军祖逖不愿隶属其下,修武牢沿黄河防御,又得知朝廷内部王敦和刘隗矛盾重重,忧愤而死。王敦因为祖逖去世而不必顾虑遂叛变 [13]。祖逖军由其弟祖约率之,最后也随苏峻叛变。由于晋朝内部矛盾,失地得而复失。晋成帝时则由庾亮、庾翼兄弟主持北伐,他们以荆州为中心,意图发动北伐。但是因被抵制,所以没有实现统一。庾氏兄弟相继去世后,朝廷先后由褚裒、殷浩、谢尚、桓温、司马勋等多次北伐 [40]。
346年晋穆帝时,桓温、周抚、司马无忌、毛穆之、袁乔等讨伐成汉,次年讨灭。349年石虎死,晋廷派褚裒北伐,失败。桓温多次破坏北伐,在褚裒北伐失败后引军东下武昌与殷浩争权。晋廷不许,改以殷浩、司马勋、谢尚负责北伐。352年殷浩联合羌将姚襄北伐前秦,被苻健击败。次年殷浩再度北伐,为姚襄所袭,殷浩被桓温弹劾罢免。
354年桓温伐前秦,但由于苻健采坚壁清野战术 [47],桓温又态度消极不进,最后晋军缺粮而撤退 [13]。356年,桓温讨伐河南姚襄,击溃之并攻占洛阳,修谒皇陵。358年桓温不顾朝廷要求其驻守经营洛阳,仅留毛穆之三千人守洛阳,自行南撤。等到晋哀帝及晋废帝(即司马奕)相继为帝之后,桓温已经控制兵权。
当时北方呈现前秦、前燕代凉割据的局势,洛阳为前燕占领。桓温为了准备专权,于369年讨伐前燕 [13]。当时燕军大败,晋军进驻枋头(今河南浚县附近)与燕将慕容垂对峙。最后晋军缺粮而退,慕容垂率军追杀,晋军大败。
371年桓温废晋帝司马奕为东海王,改立司马昱为简文帝。隔年简文帝去世,晋孝武帝继位,373年桓温要求“九锡”,大臣谢安、王坦之拖延该事,不久桓温病死 [40],东晋暂时中止了北伐。
淝水之战
淝水之战前夕,前秦东晋对峙图晋孝武帝时,谢安执政,桓冲为荆州刺史,防御荆襄地区;谢玄镇广陵,与谢安防御淮南地区。为了加强中央军力,晋孝武帝令谢玄招募淮南江北百姓,成立北府军 [40]。
370年前秦灭掉前燕后,前秦帝苻坚即有意灭东晋以统一天下。373年攻下东晋梁益二州。378年派苻丕围攻襄阳,朱序坚守,于隔年攻破,俘虏了朱序;又派彭超围攻彭城,却被谢玄率北府兵击败。382年吕光平定西域后,苻坚的目标指向东晋。次年5月桓冲率10万军,意图夺回襄阳,苻坚派苻睿、慕容垂等人防御 [47]。8月苻坚认为时机已到,率举国之师南征东晋,兵分三路,声势浩大 [48]。他亲率步兵60万抵达项城,派苻融为先锋率27万兵攻打寿阳,梁成等人屯洛涧以控制淮河。晋廷震惊,谢安力持镇定,命谢石为前线大都督、谢玄为先锋,与谢琰、桓伊等人率8万北府兵北上救援。 [40]
383年10月秦军前锋攻陷寿阳后,苻坚赶往指挥,并派朱序向谢石诸降劝降。但朱序尽泄秦军虚实,并建议速战速决。11月谢玄派刘牢之率五千精兵攻破洛涧,晋军西行,与秦军对峙淝水。12月有人向苻坚建议后退决战 [49]。诸秦将认为阻敌淝水畔比较安全,但苻坚认为半渡而击可主动对决。当秦军后移时,晋军渡水突击,朱序于后军大喊秦军已败。此时秦军大乱,谢玄等人乘胜追击,秦军全面崩溃,苻融战死,苻坚中箭,孤身北返,后由慕容垂护送。此役晋军全面胜利,于东晋历史上意义非凡,史称“淝水之战”。 [40]
战后,谢安都督诸州军事,准备北伐支离破碎的前秦。384年谢安命谢玄、桓石虔率军北伐,谢玄等人自广陵北上,攻克鄄城、广固等地,并修建青州派(水利工程) [50]以运送粮草。此役收复山东、河南一带,将领土划至黄河以南。荆州军也成功收复四川、襄阳一带。谢玄继续北上,前锋刘牢之一度打到邺城。但专政朝廷的司马道子(孝武帝的弟弟)忌讳谢氏功高,朝议“以征役既久,宜置戍而还”,令谢玄回镇淮阴,最后北伐功败垂成