在苏州外围要点尽失的情况下,谭绍光依托于护城河,在娄、齐、葑、盘四门外,筑成了由十余里长墙和二十余处堡垒组成的栅寨,并集中精兵进行防守。
淮军被阻住了,无法再向前推进。李鸿章见状,亲自来到前线督战。程学启等人向他反映,苏州“城大河宽,虽开花炮亦难攻取”。实际上是淮军各营炮队的炮位太小,尚不具备足够的攻坚能力,这样一来,李鸿章便授令常胜军由助攻上升为主力。
娄门栅寨是苏州东面所有栅寨的锁钥,戈登集合常胜军步兵主力及炮队,下令夜袭娄门。战前,所有士兵都头缠白布,以便于近战肉搏时可与太平军相区别。
1863年11月27日夜,万籁俱寂,当戈登率部下进抵栅寨附近时,栅寨未有任何动静,似乎守军完全没有发现敌人要进攻。众人认为此举定能成功,前卫开始爬入胸墙工事,在后面列队做准备的其余部队也陆续跟进。
就在常胜军参战部队几乎都进入前线后,太平军突然开火,向他们射出葡萄弹、霰弹和步枪子弹,常胜军的步兵立马就被打蒙了,纷纷后退。就在这次战斗中,戈登发现中国士兵“不宜夜战”,虽然他和其他外籍军官们一再督促士兵继续进攻,但始终无法组织起第二次攻势。在他们看来,中国士兵“似乎连见到自己影子都害怕”。
戈登认为唯一的办法只有用大炮把太平军轰出其所在阵地。常胜军的开花炮队奉命对栅寨进行猛烈轰击,炮弹阵雨一般落入太平军的工事之内,栅寨全线火光冲天。慕王谭绍光接到报告,从城内派数千援军支援栅寨,他自己也光着脚前往督战。受此激励,太平军官兵冒着猛烈炮火,继续寸步不退地坚守在自己的阵地上。
常胜军的炮击一直持续到天亮破晓,但始终无法取得突破。鉴于守军奋力抵抗,城内又开来了援军,戈登只得将部队撤出。这是常胜军战史上所遇到的最激烈血战之一,士兵共伤亡约两百人,三名大尉、一名中尉阵亡,还有数名军官负伤。太平军之所以能够及时发现戈登的夜袭企图并予以重创,部分原因是谭绍光军中容纳了约二十多名欧洲志愿军,常胜军里的洋军官与他们暗中有联系。
就在常胜军夜袭娄门栅寨失败的次日早晨,纳王郜永宽暗遣密使至程学启军营,表示愿献城归降,并要求合作拿下慕王谭绍光。
苏州城内的太平军将领,除主将谭绍光外,尚有四王四天将,其中纳王郜永宽的品级仅次于谭绍光。谭、郜均为李秀成一手培养提拔起来的左右手,谭绍光是广西人,乃参加过金田起义的元老,郜永宽等四王四天将则多为两湖之人(即后来加入太平军的湖南湖北籍将领)。
发现连李秀成都无法解苏州之困,四王四天将便起了投降的念头。他们通过密使与程学启约定,如果淮军和常胜军再去进攻娄门栅寨,他们就设法把谭绍光关在城外。
程学启把这一消息告诉戈登,戈登正为攻城战继续打下去,他的部队将蒙受更为重大的损失而担心和发愁,听后自然非常高兴。就在众人阴谋暗害谭绍光的时候,一直在无锡境内指挥作战李秀成突然率四百卫兵,由小路入城。
当初李秀成离京时,曾说好以四十天为期,如今早已超过了这一期限,后来因为孝陵卫失守,天王洪秀全又催促他还师回救天京。李秀成进退两难,上奏言明自己无法马上回京的苦衷,但并未被天王所接受。纵然如此,他仍不忍放弃自己多年苦心经营的老基地,看到苏州城危势孤,便决定回来与谭绍光共同守城。
李秀成在军中的声望非谭绍光可比,他的出现,打乱了预谋投降者的计划,将谭绍光关闭于城外的意图自然也无法实现了。
此时苏州的外援路线已被完全切断,李鸿章于是敦促各部加紧攻城。1863年11月29日,他调集常胜军、程学启部、淮扬水师、中法混合军,对娄门栅寨进行会攻。会攻仍以常胜军为主,说得更准确一点,是以常胜军开花炮队为主。因为大家都知道,要想攻下坚固城寨,只有戈登的开花炮最有效,就连程学启都将自家炮队扔到一边,一心依赖于“戈炮”。
此次不同于偷袭,双方都做了充分准备。太平军一见到敌方的大炮和步兵接近自己的防线,就立即升起一面表示作战的红旗。戈登将常胜军的所有大炮都推上前线,加上向英军借来的,一共集中了四十六门大炮进行射击。
太平军弹药有限,炮的数量和炮位也和常胜军无法相比,面对面进行炮战,很快落入下风,栅寨内的房屋和船只等不断被炸毁。在戈登的指挥下,常胜军第五联队奉命向栅寨右翼尽头实施冲锋,此处邻近苏州河,是越过壕沟最有利的地方。眼看有些军官已经爬过或正准备爬过胸墙,却遭到了太平军的拼死抵抗,激战十分钟后,第五联队被迫退回。