盧循的艦隊開到建康以後,先是直奔新亭,在城頭觀望的劉裕不由大驚,接著盧循的艦隊又轉向西岸,停在蔡洲,劉裕又是一喜。旁邊人不理解,問他為什麼先憂後喜。劉裕道:&ldo;如果賊兵從新亭直接殺進來,那我們根本擋不住他們,只能迴避,勝難料;現在賊兵卻回去停泊在西岸,那他們必將成為我的俘虜!&rdo;
其實徐道覆本來是命令艦隊殺進新亭的,但盧循卻嚇得大驚失色,急忙派人調徐道覆的艦隊回來。徐道覆對盧循道:&ldo;我們可以從新亭、白石壘一線登陸,然後燒掉所有艦船,破釜沉舟,激勵戰士,數路並進,劉裕必成為我們的俘虜!&rdo;盧循則擔心道:&ldo;我們的大軍還沒有到建康,不要急著決戰,等後面所有的部隊上來再說吧。&rdo;徐道覆一再請求,這次盧循卻堅決起來,就是不讓進兵。徐道覆沒有辦法,走出來後自語道:&ldo;這傢伙幹不成事,我終將為他所誤。如果我能為英雄賣命,就算是平定整個天下都算不了什麼!&rdo;
因為盧循的軍隊在路上先等徐道覆來援耽擱了一些日子,與劉毅打仗又被阻擋了一些日子,聽說劉裕在建康再猶豫了十多天,來到建康後又停在蔡洲不肯前進,又是十來天。這樣劉裕便得到了充足的時間來調集軍隊,首先北伐的軍隊趕了回來,接著各地勤王的軍隊也趕來了。盧循在蔡洲待了十多天以後,整個京城防線已經被晉軍防守得如鐵桶般嚴密。這時盧循再想進攻,根本就沒有機會了。他親率大艦去攻石頭城,哪裡能攻得下來。
徐道覆見強攻不成,便想了個辦法。他派老弱殘兵扮成精銳部隊乘大船向北,進攻白石壘,以吸引劉裕主力。因為白石壘也是江濱要害,劉裕留參軍沈林子與徐赤特守石頭城,自己帶著劉毅、諸葛長民率兵守白石壘。劉裕臨走時怕盧循乘虛攻石頭城,囑咐二將只可守城,不可出戰。
盧循見劉裕果然帶重兵去防白石壘,急令徐道覆去攻石頭城。徐道覆率軍先攻破石頭城前的查浦壘,查浦守將劉鍾退回石頭城。徐道覆焚毀查浦上的工事,乘勝進軍至張侯橋,並在張侯橋安營。他料到晚上晉軍必要偷襲,派秦用、範崇民、林儉、劉稷四將埋伏在外,留少數士兵守在營中。
石頭城的守將徐赤特當晚就要偷襲徐道覆的營寨。沈林子說主力都讓劉裕帶出去了,不可輕易冒險,況且劉裕也說過,只可守城,不可出戰,極力勸阻。徐赤特不聽,執意帶兩千士兵出戰。結果中了徐道覆的埋伏,全軍覆沒,只有他一個人逃回石頭城。徐道覆趁勢攻城,沈林子趕緊點火向劉裕報信求救。劉裕在白石壘望見訊號,命令參軍朱齡石率軍回援。徐道覆一時強攻不下,又見晉軍援軍到來,便帶兵撤退了。
劉裕回到石頭城後,問明情況,立斬徐赤特,並號令三軍:&ldo;三軍只需堅守,不許出戰!有違令者,以徐赤特為例!&rdo;
於是,晉軍堅守建康,從不出戰。盧循圍城兩個多月,沒有任何進展,不久軍糧出現問題。他派兵去建康周圍的丹陽、京口等城去劫糧,這些城池難以攻下,而城外的糧草都早就割光,收入城中。盧循沒了糧草,只好退兵,臨走時對徐道覆道:&ldo;我們去奪取荊州,仍能據有東晉三分之二的領土,還有實力和劉裕爭一爭。&rdo;徐道覆見事已至此,攻不能攻,守又無糧,只好派大將範崇民領精兵一萬守住南陵,以防劉裕從後掩襲,和盧循帶大軍退回潯陽。
晉將聽說盧循退兵,都向劉裕請兵追擊。劉裕道:&ldo;盧循並非戰敗,而且戰艦比我們的優良,水軍也比我們強,不可追擊。如果去追必中埋伏。&rdo;
劉裕遂在建康招募新兵,修建水寨,建造巨艦,訓練水軍,排演水戰,以增強自己在水軍方面的實力,以達到能和盧循水軍匹敵的程