为充实长江下游的军事力量,拱卫首都建康和抑制上游桓氏势力东山再起,抵御前秦南下等,谢安打算成立新军。孝武帝太元二年(377)十月,朝廷任命谢安侄子谢玄为南兖州刺史,负责筹组新军。谢玄随即把南兖州的军事治理机关从京口(今江苏镇江市)移到广陵(今江苏扬州市),南徐、南兖两州侨户纷纷应征入伍。当时彭城(今江苏徐州市)刘牢之等数人以骁勇应选,谢玄任命刘牢之为参军,率领精锐作为前锋。因为晋朝百姓称京口为北京,所以当时人称这支军队为“北府兵”。
清初王夫之关于北府兵有这样的论述:“谢安任桓冲于荆、江,而别使谢玄监江北军事,晋于是而有北府之兵,以重相权,以图中原,一举而两得矣。”桓和谢是东晋四大门阀之二,所以两者既有争权夺利的冲突,也有维护士族阶层权益的本能。从东晋政府整体的利益出发,谢安很好地处理了中央与地方藩镇的关系,平衡了谢桓两大家族的力量。
东晋所辖境土主要为荆、扬二州。荆州位居上游,地广兵强,是防止北方南下的重要据点,设有强有力的都督府,“资实兵甲,居朝廷之半”。扬州为京畿之所在,乃立国根本。三吴及浙东是谷帛的重要基地。但是“建邺拥天子以为尊而力弱,荆襄挟重兵以为强而权轻”,这种“枝强干弱”的局面,就成为荆扬之争的根源。
继督荆州的桓冲把扬州的军权让给谢安,双方互相协作,出现了“君臣和睦,上下同心”的局面。面对咄咄逼人的北方,谢安深知原来的世兵制军队腐败不堪,根本对付不了前秦的军队,于是选派“有经国才略”的侄子谢玄为兖州刺史,监江北诸军事,北镇广陵,组建北府兵。
北府兵组建后,首先遇到的是太元三年前秦向东晋发动的一场进攻。
其年二月,苻坚派征南大将军苻丕帅步骑七万进攻东晋在西线的军事重镇襄阳。为配合西线的进攻,七月,又遣兖州刺史彭超为都督东讨诸军事,与将领俱难、毛盛等帅步骑十万进攻东晋的东线重镇彭城、淮阴、盱眙。
次年二月,秦军攻下襄阳,执晋将朱序。在东线,面对秦的进攻,晋派万余北府兵援救彭城,军于泗口,欲遣间使报沛郡太守(彭城)戴遁而不可得。时彭超置辎重于留城(彭城郡属县,今沛县东南),谢玄扬言遣北府将何谦率军袭取留城,彭超释彭城围还保辎重,东晋彭城太守戴遁随何谦帅彭城之众奔谢玄,彭超进据彭城,而南攻盱眙。俱难攻克淮阴。
四月,秦将毛当、王显在攻拔襄阳后帅众二万东会俱难、彭超攻淮南。
五月,秦军攻拔盱眙,执高密内史毛操之,秦兵六万围晋幽州刺史田洛于三阿(今江苏宝应)。三阿距广陵百里,东晋朝廷大震,一面沿江布防,遣征虏将军谢石帅舟师屯涂中,右卫将军毛安之等帅众四万屯堂邑(今南京六合);另一面派谢玄自广陵率北府兵救援三阿。
六月,谢玄与田洛帅北府兵五万败秦军于盱眙,秦军退屯淮阴。玄遣北府将何谦帅舟师朔淮水而上,焚毁秦军建造的淮桥,秦将邵保战死,退屯淮北,谢玄与何谦、戴遁、田洛等乘胜追击,再败秦军于君川(今盱眙县北君山之川)。刘牢之等又破坏秦军的运舰,秦将俱难、彭超仅以身免,秦军在东线的进攻北谢玄组建不久的北府兵击败。
上述史实可以看出,谢玄先前驰援彭城的北府兵仅万余人,而用于君川,最高数却达到五万,说明北府兵是在战斗中汇入各支力量而发展的。
北府兵最大的战争是太元八年(383)淝水之战,我们后面还会讲到。