戰局發展至此就像一部編劇失敗的三流電影,本該達到高潮的地方卻冷了場。盧循等啊等,等到五月下旬,眼看建康城內一直安如泰山,根本沒有發生變亂的跡象,守備力量反而越來越強大,終於有點沉不住氣了,他決定進行一次試探性進攻。派了十餘條戰船突擊秦淮河口,靠近江岸時,放下小舟,載人入秦淮河,試圖拔出河中的木障,為後續大軍攻入秦淮河開路。但因為江麵上無所隱蔽,這一行動才剛一開始就為晉軍所發覺,劉裕立即調一隊弩兵火速趕往迎擊。盧循軍一靠近木障,早已準備好的晉軍一起放箭,小船上的盧循軍士無處可避,紛紛中箭落水。晉軍使用的弓弩中還有力道十足的“萬鈞神弩”,一般認為這可能是一種用絞盤上弦,安裝在車輛或舟船上的大型床弩,發射速度不快,但威力非常強大,可以一箭洞穿小船上的船板,把小船直接送進江底。在這樣猛烈的攻擊下,盧循軍招架不住,敗退回蔡洲。
初戰雖然隻是小挫,但已經顯示出建康的防禦實力,要想強攻得手,恐怕是不成的,盧循隻得放棄了以舟師攻入秦淮河,迂回到晉軍防線側後的想法。他與徐道覆研究了戰況之後,定下了一條聲東擊西之計。
五月二十八日夜,盧循把軍中老弱集中起來,乘坐大部分戰船,向建康城北白石壘方向實施佯攻。與此同時,徐道覆率精銳部隊借夜色與佯攻部隊的掩護,悄悄在新亭登陸,而後設伏於秦淮河以南的密林間(從曆史記載的位置推斷,埋伏地點可能在今雨花台附近)。
五月二十九日,天明,盧循軍的佯攻部隊開始對白石壘實施佯攻,蔡洲的戰船不斷駛向白石,聲勢非常浩大。駐守石頭城的劉裕擔心北線有失,決定親自率軍馳援防禦北麵的劉敬宣。當然,劉裕也想過對方聲東擊西的可能性,為了防備盧循軍從新亭北進攻,特命參軍沈林子、徐赤特、劉鍾三將防守淮口以東秦淮河一線,並吩咐說:“如果敵軍來攻,一定要守住木柵防線,但千萬不要出擊。”隨後,劉裕會合留守建康城中的劉毅、諸葛長民率軍趕去支援白石壘。
隨著晉軍主力被佯攻部隊成功調到城北,徐道覆率領的精銳主力借機派出小股部隊進至張侯橋,襲擊附近的木柵防線。眼見來襲的五鬥米道軍隊不多,徐赤特打算出擊,沈林子勸阻他說:“敵軍聲稱要進攻白石,卻突然在這裏出現,可見他們一定是使用聲東擊西的策略,這定然隻是誘餌。敵軍總人數很多,我們的兵力卻很少,不如按劉公的吩咐堅守不戰,等待北邊大軍回援,再戰不遲。”
但徐赤特不聽,他認為盧循軍主力都在攻白石,打敗這支小股敵軍的功勞不可放過,便不管沈林子與劉鍾二人,獨自率部出擊。一出擊果然中伏,徐赤特部大敗,霎時就陣亡了百餘人,徐赤特拋棄剩下的軍隊,獨自爬上一條小艇逃回秦淮河北岸。徐道覆乘勝追擊,奪取丹陽郡城,猛攻木柵防線,沈林子與劉鍾奮力死守,終於打退了徐道覆第一輪猛攻,但劉鍾也負傷退出了戰鬥。
徐道覆首輪進攻沒有成功,決定讓士兵稍事休息,再發動第二輪進攻。因為徐赤特部已經潰敗,劉鍾負傷,沈林子兵力不足,而秦淮河正麵又太寬,難以防守,沈林子決定不守木柵防線,渡河南下扼守南塘。南塘是當時秦淮河以南的一個湖泊,清人著《上江兩縣誌》中稱,南塘就是今天的南京莫愁湖,但較之曆史記載的位置相差太大,估計不準確。真正的南塘可能早已幹涸,很多南京古地圖都未標注,其具體位置存疑,懷疑在今雨花台與秦淮河之間,因為當時從南麵進入建康的陸路主幹道要穿過這一地區。有大量曆史記載和詩歌都提到過這個地方,南朝民歌《西洲曲》曾有“采蓮南塘秋,蓮花過人頭,低頭弄蓮子,蓮子清如水”,應該是當時建康居民閑暇時賞春遊玩的絕佳去處。
沈林子決定守南塘,當然不是因為那裏風景好,而是因為那裏地形有利。由於受周邊複雜水道和大量民居影響,南塘隻有一條不寬的堤道可以穿行(雖然盧循擁有不少船隻,但由於無法突破秦淮河口的木障,故無法使用水道進軍),是往來的捷徑。由於堤道狹窄,隻需百餘人就可以封死,大部隊隻能站在後邊幹著急,所以這是個以少抗多的良好陣地。八十六年前,晉朝第二次王敦之亂,晉將蘇峻等人正是在這裏大敗進攻建康的王敦部將沈充、錢鳳,一舉平定叛亂的。不過,如果進攻一方不攻堤道,肯走遠路繞過南塘也是可以的,那樣晉軍的布防將完全破產,但那樣進攻一方花費的時間要長多了,沈林子把寶押在劉裕大軍能夠及時回援上了。
再說劉裕到達白石壘,發現盧循戰船雖多,卻隻是用弓箭與岸上晉軍對射,並不是真正靠近,馬上意識到中計,立即命令回師。發現晉軍的行動後,盧循也認為決戰將至,停止了對白石壘的佯攻,親率大軍乘船南下,支援徐道覆。劉裕回師到達石頭城後,得知南線正在交戰,但考慮到晉軍士兵在數小時內往來奔跑,比較饑餓疲勞,為避免以勞擊逸招致敗仗,同時他對沈林子的能力也有信心,便命兵士們在石頭城解甲休息,洗浴用餐之後再南下增援沈、徐、劉三將。