向榮離開蕪湖之後,才知金陵已經失守。他於二月十八日馳抵江寧縣的板橋,查看近城紮營處所,不料太平軍先在城外挖掘了陷阱,密布竹簽,並在長壽橋左右修築了土城,連紮了幾座軍營,防備非常嚴密。周邊都是小河,無法繞越。向榮發現,東路的孝陵、雄黃鎮一帶地勢寬敞,進攻較易,還可以扼截太平軍進兵蘇州和常州的陸路,當即率部從秣陵關一帶馳往東路,尋找地方紮營,作為進攻基地。但金陵北麵沒有官軍,向榮趕緊派出軍官,迅速通知琦善,請他率部在北岸扼要之處駐紮,設法堵禦,以防太平軍北進。
楊秀清沒有等到琦善抵達金陵北岸,就開始攻擊長江下遊。太平天國從金田發兵之後,一路打到金陵,不過是挪了個地方,所過之處,並未割據一城一池,也沒有建立根據地。他們經過的城鄉,在他們走後,立即被官軍進占。他們來到金陵之後,打算長期盤踞,就必須在金陵周邊建立堡壘,拱衛這個大本營。楊秀清認為,必須趕在清軍主力合圍金陵以前,在長江下遊攻占幾座繁華富庶的都市,既能為金陵提供補給,又能為金陵建立犄角。他跟韋昌輝、石達開商議了一個計劃,決定攻占鎮江與揚州。
二月二十二日早晨,楊秀清派林鳳祥為先鋒,試探官軍在北岸瓜洲和南岸金山一帶的實力。林鳳祥率領一百多艘戰船蔽江而下,直逼瓜洲。
官軍的水師正好集中在瓜洲和金山。楊殿邦從瓜洲派出艇船迎戰,楊文定也從金山派葉常春指揮艇船迎擊。官軍艇船擊破敵船十多艘,迫使林鳳祥退到黃天蕩。林鳳祥下令棄船登上北岸,改為陸軍,按計劃向揚州推進。
楊秀清摸清了官軍的實力,下午三點鍾,親率主力船隊三四百艘向下遊攻擊。葉常春抵擋不住,指揮艇船退到金山腳下駐紮,太平軍衝到瓜洲江麵。楊殿邦令駐守瓜口的二百名徐州兵開炮轟擊,還是阻擋不住攻勢。楊秀清率領一支船隊從運河直趨揚州,林鳳祥也已從儀征陸路北上,直抵揚州城下。
羅大綱率領另一支船隊駛到鎮江附近。羅大綱發布了一份告百姓書,令蘇州、鬆江、常州、鎮江四區百姓從城內撤出,以避戰火,待打完仗後再回城內。
安東將軍平滿大元帥撫轄水陸兵馬羅、參讚軍機大臣撫轄糧餉王,為照得吾主於二十二日定鼎金陵,一切滿賊概行誅戮,雞犬不留,漢官陸建瀛等盡行歸於漢王,本帥不日兵臨城下,蘇、鬆、常、鎮四郡所屬廳州縣等處地方,你等百姓不必驚惶,本大臣深曉天文,以罡星在,太白星在,鬆江、上海,醜夷亦非人類,滬邑難保不作戰場,爾常、鎮百姓各宜退避遠方百裏之外,可保太平。清之民亦漢之民,百姓各祈自諒,待吾主大定之日,再頒發榜文招安,爾等回裏安居樂業,考試行文,各宜知道,毋違曉諭,特示。
楊文定指望陸路官軍助戰,派人登山瞭望,岸上不見一人一騎。羅大綱未知金山官軍的虛實,分兵從鯰魚套登陸,火燒金山。楊文定和葉常春大為恐慌,立即令艇船退過焦山。羅大綱一擊得手,繼續放火,燒了北固,直攻鎮江府城。
據說羅大綱的前鋒中有一隊女兵,為首的名叫蕭三娘,二十多歲,長身猿臂,騎在馬上,左右挽弓。她是蕭朝貴的妹妹,勇悍勝過男將,官軍望風披靡。她的嫂嫂洪宣嬌也得服她幾分,因為洪宣嬌雖能騎馬,卻不能縱馬殺敵,蕭三娘則能在馬上揮師作戰。
蕭三娘來到鎮江城下,見城頭上空無一人,城門大開,官軍副都統已率守軍撤走,蕭三娘兵不血刃地進了鎮江。
北岸的楊殿邦沒有保衛揚州的信心,北撤到高郵、寶應一帶。林鳳祥第二天輕易地攻占了揚州。楊殿邦的防區是運河與淮河流域,他在逃跑途中查看地勢,發現處處城池都處在河堤之下的低窪地帶,毫無把握固守。各路援軍他都指望不上,他便別出心裁地想了個放水斷敵的主意。淮安水利工程可以開閘放水,也可以閉閘蓄水。他向皇上請示:可否開啟所有閘門,泄盡淮水,使敵船無法行駛,敵軍就無法從水路北上。這樣就隻需在陸地堵禦,較為容易。如果敵軍攻到高郵、寶應一帶,他便開決洪湖,使水下注,敵軍就會全軍淹沒。
南岸的葉常春也有自己的擔心。他害怕敵船繞襲下遊,從後背襲擊艇船,也不跟楊文定打招呼,便指揮艇船下行二十多裏。楊文定本來也想後撤,但想到如此避敵無法向皇上交代,於二月二十四日又令艇船回到焦山口外駐紮。但他一到焦山,又後悔不迭。想來想去,還是下令大踏步向下遊撤退,轉移到江陰和靖江一帶江麵,派人繞過揚州向北京報信,等待大軍增援。