2月28日,魏光燾等部發起第五次反攻,徐邦道部也參與進攻大平山,仍然未能攻克海城。李光久所部在唐王山、亮甲山和海城等地與日軍激戰。陳湜所部在大高嶺屢次擊敗日軍。
李光久求勝心切,要徐邦道部從海城東麵佯攻,牽引日軍,湘軍精銳則在西城架雲梯進攻,企圖突襲。於是,在海城西門,一場驚心動魄的戰鬥打響了。湘軍與日軍肉搏,戰鬥異常慘烈,雙方都沒有占到便宜。
湘軍架雲梯進攻受挫,李光久令軍士挖掘壕溝,鞏固陣地,與日軍對壘射擊。這一著是李光久失算了,湘軍的炮火遠不是日軍的對手,湘軍的長處在於步兵和騎兵。
李光久又令湘軍把地道挖到城牆下。由於施工失誤,攜帶的地雷摩擦起火,在接近城牆兩米開外的地下爆炸,連人帶炸藥飛上了天。日軍早已熟知清軍打太平天國的那一段戰史,便在城內挖短濠對付地道。
日軍在海城城內有六千人,在城外西南和東北各有四千五百人。清軍這一邊,依克唐阿將軍和長順將軍就有三萬人馬,提督唐仁廉又帶著奉軍一萬六千人前來助戰,宋慶也統領著四萬大軍前來接應,十倍於日軍的清軍大有不破海城誓不罷休之勢,但是第五次對海城的攻擊,還是沒能奏效。
駐紮在田莊台的吳大澂是個急性子。他說:“海城城內總共才六千日軍,我方人馬將近十萬,還打不下一個小小縣城,恥辱呀!傳我的命令:田莊台的湘軍打點行裝,即日全部開赴海城幫助李光久,跟小日本拚個你死我活!”
日軍堅守海城,拖住了中國大軍。同一天,日軍第五師團從九連城一帶間道出兵岫岩以北的黃花甸,擺出攻打遼陽的態勢,駐守海城的日軍第三師團也突圍北上。
田莊台離牛莊近九十裏。吳大澂還沒有出發,探馬來報:日軍逼近遼陽,依克唐阿請求援救,他自己已連夜逃走,長順將軍也走了。
清軍中了日軍的計謀,長順所部放棄要道鞍山站,回師援救遼陽。日軍乘虛攻占鞍山站,又派騎兵主力直取牛莊。
魏光燾於3月3日接到軍報,立即從海城撤軍,回援牛莊。
3月4日早晨,魏光燾部以三千兵力抵抗日軍兩萬精銳的進攻,展開血戰。他發揮湘軍的作戰傳統,命令部隊堅忍等待,誘敵深入,等到日軍接近時,進行猛烈反擊,重創日軍。
日軍依恃兵力優勢,突入牛莊市內。魏光燾和李光久的十一營湘軍困守市區,占據民房,與日軍巷戰。軍士們衝鋒肉搏,短兵相接,受傷後裹創再戰。雙方展開拉鋸戰,湘軍往複拚殺,血肉橫飛。魏光燾部將餘福章和陳勝友戰死。部隊傷亡二千人。
魏光燾往來督戰,換了三匹坐騎。鏖戰到深夜,他才和李光久從城西突圍,部隊所剩無幾。
3月5日,日軍發動遼河下遊戰役,徐邦道率軍在田莊台繼續抵抗。
3月7日,日軍不戰而取營口。