七月二十六日,李续宾自领五百人马,与舒保的三百名骑兵进攻鲁家巷,毁掉一座壁垒,只与敌军交手一个回合,便返回军营。湘军离开鲁家巷后,敌军壁垒反而增加了。
李续宾试了试太平军的钢火,知道来者不善。他决定不去硬打敌垒,要等敌军主动来攻。两天后,太平军援兵全部到齐,李续宾给各部将领下令:全部闭垒饱食,不得出击,等待命令。他制定一条严厉的纪律:敌军没有逼近营垒而胆敢先行出兵者,即便有功,也要斩首。
湘军在军营后面所挖的长壕,如今显示出无比优越的作用。石达开与古隆贤的部队被挡在后壕之外,无法突进,气得嗷嗷大叫,但无可奈何。胡林翼后来有一段文字,评价后壕的作用,以及李续宾的先见之明,见诸他写给曾国荃的信中:
李忠武在洪山豫议后壕,乃各于后面十余里兴工,人固笑其拙也。石逆到后,则后壕变为前壕,人又叹其巧。此议本出于李忠武,林翼至今思之,有余情焉。
城外的太平军攻不进来,城内的太平军便想往外冲。他们出动两万人,打开汉阳门、武胜门、望山门和东南门,倚城列阵。李续宾登上洪山绝顶察看,发现石达开所部经长途跋涉,十分疲劳,而城内太平军则精神饱满。这时杨载福的水师已夹江列阵,石达开的援兵充塞原野,朝武昌开进。武昌太平军逼近开炮,击穿了朱品隆的营壁。李续宾见时机已经成熟,下令举旗擂鼓,打开营门,向山下出击。武昌太平军已有几百人爬上山腰,见湘军出兵,大惊而退,不少人在山路上颠仆而死。湘军冲到山下时,敌军多半被逼下壕沟身亡。太平军中有一名黄衣将领,驰骋指挥,李续宾用鞭一指,说道:“斩下此人首级,敌军当败!”
刘神山策马向前,斩下敌将首级,返回阵前。太平军见主将已死,果然退走。李续宾几声令下,赵克彰向赛湖堤上的敌军出击,蒋益澧与秦冠镳左右包抄,李续焘攻向沙子岭与小龟山之敌。太平军殊死搏斗,舒保率领五百骑兵三次冲锋扫荡,赵克彰斩杀敌军三名悍将,赛湖敌军丢下几百具尸体,落败而逃,小龟山敌军相继逃走。
武昌太平军落败时,石达开的援兵前锋已抵东岳庙,蒋泽沄与朱品隆越壕攻击,击毙敌军三百。骑兵赶到,一通砍杀,敌军反身而逃,死伤更多。此时石达开的主力分三路进军,挺进赛湖的一支遭到赵克彰、蒋益澧两部的坚决抵抗,挺进窑弯、小龟山的一支兵力最为雄壮,李续宾亲自对付。他率领一千二百人向洪山以北突击,大纛前引,窑弯敌军望风披靡。李续宾令六百军士越壕追逐,无不一以当百,又会合骑兵杀到小龟山,斩刈更多。太平军尸横塞途,雄壮之师顿时瓦解,大溃而散。
李续宾立马收军,听到赛湖那边还有炮声,当即率三百人前往。太平军一见李字大纛,惊慌逃窜,晕头转向,多遭刺杀。他们逃过沙湖、东湖,自相拥挤践踏,淹死几百人。杨载福的水师又在江岸堵击,太平军尸横遍地,湘军战士归营时不得不踩踏尸体而过。湘军烧毁敌船七十三艘,俘虏九千一百十四人。李续宾令俘虏剃发,全部释放。太平军向城中奔去,李登辟率三百人追杀,武昌太平军在城上开炮,击断李登辟左腕,击伤士卒十人,李登辟才下令收兵。何绍彩与张荣贵奉李续宾之命,截断石达开的退路,水师及骑兵协助扼守,斩杀几百人,捣毁五座敌垒,烧毁二十艘敌船。
八月三日,李续宾亲自领兵攻打鲁家巷败敌,攻破六座壁垒,斩杀六百人,击伤古隆贤,缴获五门铜炮与四门洋炮。当天还剩下九座大垒和八座小垒,夜半时分,太平军全部弃垒而逃,把一千六百石大米和三千枝枪矛留给了湘军。张荣贵等部跟踪追击,抵达土桥,太平军正在煮早饭,来不及进口,便弃食而逃。湘军吃了敌军做好的早餐,继续追杀。太平军实在走不动了,呆立路旁,任由砍杀,或者自己投水自尽。李续宾见胜仗已成定局,策马返回洪山。