英法联军在战役中所取得的有利形势,让本来颇为灰心丧气的英国公使额尔金又打起了精神。联军占领塘沽后,他兴冲冲地找到格兰特,说要在塘沽的一座寺庙顶上建立总部,理由是站在上面可以更好地观察攻打炮台的战斗情形。
额尔金不过是格兰特的名义上司,打仗这事还是得格兰特说了算。格兰特听额尔金说,他要邀请《泰晤士报》记者和他一起去寺庙观战,马上明白这位公使先生不过是想获得在英国报纸上露脸的机会而已。鉴于大沽炮台与塘沽只隔着一座白河,中方大炮的射程足以到达额尔金所说的那座寺庙,格兰特毫不客气地驳回了他的要求。
在联军内部,孟斗班之前虽然有意与格兰特争锋,但由于独自进攻塘沽受挫,如今也已不自觉地落于了下风。当商讨如何攻占大沽炮台时,他提出要同时攻打大沽的四个炮台,格兰特则坚持先攻北岸炮台,因为北岸炮台在火力配备上最为虚弱。争论的结果,孟斗班不得不屈从于格兰特,他在日记中酸溜溜地说:“我这样做的目的,是卸下我的军事责任以及与此相关的政府责任。”
1860年8月21日凌晨,英法联军突然自后路对大沽北岸炮台实施猛攻。战前,格兰特下令将所有的阿姆斯特朗炮都尽可能运至前线实施轰击。阿姆斯特朗炮笨身沉重,加之地面又泥泞不堪,所以每一门炮都须用六匹高头大马予以拖送,然而其威力之大是不容置疑的。中方架在炮台上的大炮根本无法与之抗衡,短时间内多数大炮都被击毁,但守军利用残存的火炮继续轰击,依旧远远地将敌人阻于炮台之外。
按照西方人的记录,意外发生在上午6点半,炮台弹药库不幸被联军的开花弹击中,继而发生爆炸,巨大的爆炸声如同地震一般,令守军手忙脚乱。由于弹药来不及补充,在半个小时之内,大炮无法再对敌人进行射击,联军趁此机会逼近了炮台。
半个小时之后,守军恢复射击,却发现己方大炮的威力已经大减。这是因为中国炮手普遍缺乏数学和弹道原理的知识,技术再熟练的炮手也只能根据经验,朝着固定的方向进行大致瞄准。这使得炮台的攻击距离有着很大局限,一般只有在一千两百米到一千五百米的范围内才能对敌方造成杀伤,随着距离拉近,一旦超出这一范围,炮手们就不知道该如何调整发射的高度了,打出去的炮弹往往都超出目标。
联军前敌指挥官柯利诺见状,立即命令炮兵把来复炮推到阵前。来复炮和阿姆斯特朗炮一样同属线膛炮,虽然火力不及阿姆斯特朗炮,但在轻便性和机动性上更胜一筹——一般情况下,只须四匹矮马就能轻松拉动一门来复炮,炮兵推起来也不觉得特别费劲。
联军将来复炮推到距离炮台六百米的地方,旋即对炮台进行射击。联军炮兵训练有素,在如此近的距离范围内,可以说没有一门大炮会失去准星,相反,中国军队射出的炮弹却只能从联军士兵的头上划过。
经过来复炮的“定点清除”,炮台尚存的大炮多数都哑了火,火力遭到完全压制。柯利诺认为时机已到,下令各部发起冲锋。
当联军士兵冲到距离炮台三十五米处时,炮台上仍有一门也是唯一的一门大炮在施射,可是操纵者却只有一个。该炮手先是把背贴在地上,钻到大炮下面装填炮弹,接着再爬起来开炮,之后又重新开始这一套在联军看来很“古怪”的操作。其间联军不停地向炮台开炮,然而竟没有一颗炮弹击中他。
这当然不是偶然的,实际是联军官兵对这名英勇的中国军人肃然起敬,不愿意加以伤害。有人后来说起当时的感受:“不同国家的勇士之间总会惺惺相惜,看着别国的勇士倒下怎么可能不痛心?”
炮台前有连续两道壕沟,里面都注满了水,这构成了联军前进过程中难以逾越的一大障碍。与此同时,除了那门坚强的大炮外,其余守军也在用抬枪、鸟枪乃至弓箭进行顽强抵抗。联军在壕沟边折腾了一刻钟,不仅没能取得任何进展,而且伤亡惨重。
柯利诺急得两眼冒火,为了加快进攻速度和减少联军的损失,他不顾一切地下达命令,逼着从香港招募的中国苦力们跳下壕沟,充当人梯。