林鳳祥從山西殺入直隸境內之時,太平軍在長江沿岸策應他的行動。賴漢英從南昌撤圍後,石達開主持西征戰事,決定分兵兩路:由石祥禎、韋誌俊率軍西進,直取武漢;胡以晃和曾天養率軍固守安慶,保證天京至九江交通無阻,並經略安徽北部,策應林鳳祥的北伐。賴漢英因圍攻南昌不利,奉調返回天京,另行安排。
石祥禎奉到王命,立即率部西進,於八月二十八日攻克九江後,船隊繼續上行,攻入湖北。江忠源飛催張金甲等率部增援田家鎮。第二天,江忠源與音德布帶領一千九百人從陸路馳赴九江,以圖克複此城。
江忠源於九月二日行抵馬回嶺,探悉敵船攻撲田家鎮,當即留下戴文蘭、李輔朝管帶一千多名楚勇,駐紮九江城外的東林一帶,以防太平軍回攻南昌。他自己與音德布率一千多名雲南兵和四川兵趕赴田家鎮救援。他打算從武穴渡到江北,可是來到江邊一看,太平軍掌握了製江權,江麵兵船往來不絕,官軍無法搶渡。他決定繞到瑞昌,取道興國州,前往田家鎮。這一路必須翻山越嶺,部隊行軍十分艱難。
石祥禎所部從九江水陸並進,駛至廣濟縣的武穴,距田家鎮僅四十多裏。石祥禎下令暫停前進,似乎在給官軍製造懸念,一邊觀察官軍的動靜。官軍此時確實摸不準他們的意圖,因為田家鎮以北為黃州府的黃梅、廣濟、蘄州、蘄水各縣,與下遊的安慶府和六安州緊接,處處有路可通。太平軍若分兵從陸路進攻,也可以直接控製田家鎮上遊。
太平軍闖入了張亮基的防區,張亮基和左宗棠緊急商議,當即委派代理臬司唐樹義等人率領二千兵力,馳赴蘄州、黃梅一帶擇要駐紮,並叫他們廣發哨探,隻要見到太平軍,立即發兵迎擊,同時兼顧田家鎮江防,互為犄角。
石祥禎於八月三十日早晨等到了順風,開始對田家鎮進行試探性攻擊,分派陸軍從彭塘分撲官軍的岸上營盤。防守此處的軍事指揮官是道員徐豐玉和張汝瀛,以及總兵楊昌泗。他們已經做好了防守的部署。太平軍水師沿岸行駛,噪呼索戰,官軍水陸各營仗著有牆柵遮蔽,有恃無恐,嚴陣以待。
太平軍船隊駛近時,遭到官軍密集的炮火射擊。官軍炮兵測量射程,從容開炮,擊沉敵船四艘,太平軍紛紛落水。石祥禎的陸軍撲到距離官軍營壘百餘丈處,官軍越壕開槍,斃敵十人。太平軍並不戀戰,立即撤退。官軍步兵乘勝壓下,追出很遠。
九月一日黎明,太平軍主力船隊上駛,開炮猛撲。徐豐玉等嚴令岸上各營準備,添兵接應。太平軍兵分三路,每路約一千多人,傍岸登陸,繞撲田家鎮。官軍也分三路迎擊。遊擊董玉龍身先士卒,衝入敵陣,斃敵幾十名。楊昌泗也打得頗為主動,率部夾擊。遊擊許連城率兵越壕射擊,都司曠輔廷、參將駱永忠各率所部分途攻擊,刺死執旗的太平軍將領。官軍此戰打得有板有眼,又將敵軍擊退。各路官軍乘勝掩殺,徐豐玉調水師順風下擊,直逼敵船,焚毀大船二艘,約斃敵七八十人。從馮家山渡江的太平軍船隊遭到炮擊,指揮船被炮火擊壞,其餘船隻簇擁指揮船撤退,全部乘風退去。
第二天,太平軍船隊上駛一段,停泊在距田家鎮十五裏的富池口,企圖從南路襲攻半壁山後側。石祥禎登峰遙望,看到官軍陸營和水寨布置嚴密,下令撤退,另圖再舉。他令部下放出風聲:等到東北風緊時,還要直闖田家鎮。
九月三日早晨,石祥禎從富池口派出幾百艘兵船,從湖路直抵興國州。張亮基和左宗棠派出增援興國的都司任大華尚未趕到。興國距長江岸邊六十餘裏,是由江西進入湖北的小路,湖汊密布,水陸可達通山。太平軍船隊從湖汊進至偏遠的山地,既是為了征集米糧,也是為了牽製官軍兵力,使主力能夠乘虛攻進田家鎮。左宗棠曾告誡田家鎮的守軍:“你們兵力不多,隻能就近策應,不得分兵遠處,致中奸計。”