2月28日,魏光焘等部发起第五次反攻,徐邦道部也参与进攻大平山,仍然未能攻克海城。李光久所部在唐王山、亮甲山和海城等地与日军激战。陈湜所部在大高岭屡次击败日军。

李光久求胜心切,要徐邦道部从海城东面佯攻,牵引日军,湘军精锐则在西城架云梯进攻,企图突袭。于是,在海城西门,一场惊心动魄的战斗打响了。湘军与日军肉搏,战斗异常惨烈,双方都没有占到便宜。

湘军架云梯进攻受挫,李光久令军士挖掘壕沟,巩固阵地,与日军对垒射击。这一着是李光久失算了,湘军的炮火远不是日军的对手,湘军的长处在于步兵和骑兵。

李光久又令湘军把地道挖到城墙下。由于施工失误,携带的地雷摩擦起火,在接近城墙两米开外的地下爆炸,连人带炸药飞上了天。日军早已熟知清军打太平天国的那一段战史,便在城内挖短濠对付地道。

日军在海城城内有六千人,在城外西南和东北各有四千五百人。清军这一边,依克唐阿将军和长顺将军就有三万人马,提督唐仁廉又带着奉军一万六千人前来助战,宋庆也统领着四万大军前来接应,十倍于日军的清军大有不破海城誓不罢休之势,但是第五次对海城的攻击,还是没能奏效。

驻扎在田庄台的吴大澂是个急性子。他说:“海城城内总共才六千日军,我方人马将近十万,还打不下一个小小县城,耻辱呀!传我的命令:田庄台的湘军打点行装,即日全部开赴海城帮助李光久,跟小日本拼个你死我活!”

日军坚守海城,拖住了中国大军。同一天,日军第五师团从九连城一带间道出兵岫岩以北的黄花甸,摆出攻打辽阳的态势,驻守海城的日军第三师团也突围北上。

田庄台离牛庄近九十里。吴大澂还没有出发,探马来报:日军逼近辽阳,依克唐阿请求援救,他自己已连夜逃走,长顺将军也走了。

清军中了日军的计谋,长顺所部放弃要道鞍山站,回师援救辽阳。日军乘虚攻占鞍山站,又派骑兵主力直取牛庄。

魏光焘于3月3日接到军报,立即从海城撤军,回援牛庄。

3月4日早晨,魏光焘部以三千兵力抵抗日军两万精锐的进攻,展开血战。他发挥湘军的作战传统,命令部队坚忍等待,诱敌深入,等到日军接近时,进行猛烈反击,重创日军。

日军依恃兵力优势,突入牛庄市内。魏光焘和李光久的十一营湘军困守市区,占据民房,与日军巷战。军士们冲锋肉搏,短兵相接,受伤后裹创再战。双方展开拉锯战,湘军往复拼杀,血肉横飞。魏光焘部将余福章和陈胜友战死。部队伤亡二千人。

魏光焘往来督战,换了三匹坐骑。鏖战到深夜,他才和李光久从城西突围,部队所剩无几。

3月5日,日军发动辽河下游战役,徐邦道率军在田庄台继续抵抗。

3月7日,日军不战而取营口。