這時殷仲堪、桓玄和殷仲堪的司馬、堂邑太守楊佺期率軍在湓口(湓水入江之處,在江西九江縣西)擊敗江州刺史王愉,王愉逃到臨川(今江西撫州)。殷仲堪繼續進軍到牛渚(今安徽省馬鞍山採石磯),正遇到庾楷和司馬尚之大戰,殷軍助戰,司馬尚之大敗,逃回石頭城。
殷軍和庾軍聯兵來到石頭城下。這時傳來訊息,劉牢之陣前反戈,已經擊敗王恭軍隊。司馬元顯也帶兵回到石頭城,劉牢之正率北府兵馳援京師,已經進軍到新亭(江蘇省南京市江寧縣南)。桓玄和楊佺期都有些擔心。這時桓沖的兒子,左衛將軍桓修向司馬道子獻計,請司馬道子再封賞桓玄和楊佺期二人,讓二人退兵。司馬道子於是上表後任命桓玄為江州刺史,楊佺期為雍州刺史。兩個人一下子成了封疆大吏,都很高興,不願意再冒風險,於是勸說殷仲堪罷兵。殷仲堪見王恭敗了,桓、楊二軍也要回去,他也只得帶兵退回江陵。桓玄、楊佺期則分別帶兵分赴武昌、襄陽上任。庾楷則被降為武昌太守。庾楷雖然心裡很不服氣,但現在只剩下了自己一支隊伍,如果繼續打下去肯定會敗,也只得罷兵,聽任安排。
司馬元顯因軍功被升為中領軍(掌管所有的禁衛軍,算是京城衛戍部隊總司令)。司馬道子身體有病,又不願意管理朝政,而且兩次兵變都是由他而起,加上這個人貪汙腐化,所以很不得人心。司馬元顯趁此機會向白痴皇上的親弟弟司馬德文請求接替父親,並向朝臣們施加壓力,最終如願得到了父親司馬道子的職務,並擔任揚州刺史,司馬德文為司徒。司馬道子雖然很戀權,但由於政聲太壞,沒有威望,權力盡失,也只好由兒子去了。
司馬元顯在朝廷中安插親信,並重用會稽張法順。張法順向司馬元顯建議說:&ldo;現在荊州兵、北府兵都很厲害,人家只要來打,憑京師這點兒禁軍肯定打不過人家。一旦再有王恭這樣的人反叛,我們還是要吃虧。應當招募新軍,擴大你手中的兵力。&rdo;司馬元顯於是在三吳八郡強制徵兵。
在王恭第二次進軍京師的時候,&ldo;五斗米道&rdo;創始人杜子恭的徒弟孫泰,以替朝廷徵討王恭為名,私下裡招兵買馬,儲備錢糧,準備造反。司馬元顯後來將計就計,以徵討王恭有功要封賞孫泰的名義把孫泰誘入京中,斬首示眾,並把孫泰的六個兒子全殺掉。孫泰的徒弟孫恩、盧循率一百多個死黨東逃入海,藏在海島中。等司馬元顯在三吳徵兵的時候,孫恩和盧循趁著人心騷動,對徵兵不滿,上岸後招集了五斗米道的八千信徒,攻入上虞,殺死上虞令,然後聲討司馬元顯父子的罪行。這一號召頗得人心,一心投奔來的老百姓達到十多萬。
孫恩又帶兵攻打會稽。會稽內史是王凝之,他是王羲之的二兒子,這個人沒什麼本事,孫恩來攻的時候,他竟然作法請天兵天將。結果會稽很快被攻破,王凝之連逃都來不及,被孫恩計程車兵殺死在法壇之上。很快孫恩佔領了會稽、吳郡、吳興、義興、臨海、永嘉、東陽、新安等三吳八郡,聚兵二十多萬,官軍望風而逃。孫恩遂於會稽自稱徵東將軍,號義軍為&ldo;長生人&rdo;。
孫恩的勢力發展得這麼快是因為他得到了大量士族豪強的私下支援。朝廷徵&ldo;免奴為客&rdo;者(指本身或父祖是奴隸,但已放免為佃客的壯丁)當兵,這些人很不願意應徵當兵。而徵這部分人,對其佃主也是損失,從而引起世家大族對政府的不滿。所以一時&ldo;東土囂然,人不堪命&rdo;。豪強士族們都想給朝廷一個狠狠的教訓,所以孫恩率五斗米道眾取得一兩次小勝利後,便立刻在經濟上和兵源上得到迅速補充。
司馬元顯急忙派衛將軍謝琰、鎮北將軍劉牢之率兵鎮壓。劉牢之的北府兵戰鬥力極強,一路連勝,一直殺到錢塘。在錢塘為尋找敵軍主力,劉牢