元兴元年(402年),司马元显下令讨伐桓玄。
这时桓玄已经封锁了长江漕运,造成东土饥乏。不过他认为孙恩之乱还未平定,司马元显应当无力讨伐,便一直在荆州等待时机,蓄势待发。
可当桓玄收到司马元显要讨伐他的消息,却又害怕了,打算坚守江陵。
不过卞范之劝谏道:“以君的威名和军力,应当出兵东下,令敌人土崩瓦解,不能坚守不出,示弱于人。”
于是桓玄留桓伟守江陵,亲自率兵东下。
起初他还有些担心,手下士兵不会听从他的,然而过了寻阳仍未见朝廷军队,桓玄变得十分高兴,士气亦上升,于是移檄上奏司马元显之罪。
桓玄到姑孰时,派遣冯该击败了豫州刺史司马尚之,并夺取了历阳(今安徽省和县)。
这时司马元显畏惧桓玄兵锋,登上船后,却不敢出兵。而刘牢之担忧击败桓玄后,司马元显会容不下他,于是带领北府军向桓玄投降。
桓玄很快逼近建康,并击败司马元显。
入京后,他称诏解严,并以自己总掌国事,受命侍中、都督中外诸军事、丞相、录尚书事、扬州牧,领徐州刺史,加假黄钺、羽葆鼓吹、班剑二十人。
掌握朝堂权力后,桓玄历数会稽王司马道子及其子司马元显的罪恶,流放司马道子到安成郡,数月后派人杀死司马道子,又杀司马元显、庾楷、司马尚之和司马道子的太傅府中属吏。
短短几月时间,风云变化。
司马道子、司马元显父子,从权倾朝野,到沦为阶下之囚,最后更是性命难保。
而在这场斗争中,倒戈投降的刘牢之以及他所率领的北府军,深受桓玄忌惮。
在前几年,王恭依靠刘牢之和北府军,威逼司马道子父子,却无人能奈何他。可是等到刘牢之投降司马道子父子后,王恭瞬间沦为了阶下囚,被斩首示众。而刘牢之反叛司马道子投降桓玄后,司马道子父子掌握的权力迅速被桓玄取代。
总揽朝堂大权的桓玄,对于这种情况,比谁都忧虑。
刘牢之屡次改换门庭,焉知下一个背叛的不是他桓玄。
同样,北府军内,也是汹涌暗流,人心浮动。统军大将,屡次倒戈,将领士卒,离心离德。
危机不知不觉间,悄然而至。
掌握了朝堂权力的桓玄,开始着手对付刘牢之以及北府军,于是任命刘牢之为征东将军、会稽太守,将其调离京口。
刘牢之和心腹长叹道:“才刚刚开始而已,便削夺我的兵权,不久以后,大祸将会降临了!”
这个时候,桓玄住在丞相府,刘敬宣建议先下手为强,袭击桓玄。
但刘牢之犹豫不决,最后决定移兵驻扎班渎,打算向北投靠他的女婿广陵相高雅之,占据长江以北广大地区来对抗桓玄。
于是他召集众将领商议决策,参军刘袭说:“这世间不能做的事,莫过于反叛,而将军早年反王恭,不久以前反司马元显,如今又打算反桓玄。一个人一生当中三次反叛,怎能够立足于天地之间呢!”说罢,起身扬长而去。
北府军将领对此也早就不满,纷纷离开。
而刘敬宣在此之前返回京口转移家室,逾期未还。刘牢之以为他被刘袭杀害,变得心灰意冷起来,遂上吊而死。不久,刘敬宣返回,发现父亲上吊而亡,来不及悲伤,便急忙投奔高雅之去了。
就这样,战功赫赫,令人忌惮的北府军逐渐分崩离析。