镇山门建在虞山的半山处,通往城下的道路并不宽,且有些陡峭,来敌打马冲到半途,马速下降便纷纷下马避开大路向两翼散开借着山形的掩护继续向城门靠近。城上的宋军则开枪开炮进行拦截,但他们已经散开队形,杀伤效果并不佳,使他们得以继续前行,在进入弓箭的射程后立刻摘弓搭箭向城上发箭,试图压制城上的宋军。可毕竟处于仰攻的态势,且又有乱石和树丛阻碍,在宋军枪炮的压制下进展十分缓慢,一时间难以靠近。
常熟西门外相对于镇山门则要宽阔的多,这路敌骑快速向前突进,遭到己方火力拦截后,只是散开队形以减少炮火的集中杀伤,一部分人举着盾牌顶着弹雨向前突进,破坏城前的栅栏、麓角。而另一部分人则以弓箭向城头射击。罗大同知道敌军是想利用自己速度的优势,快速进入到城上枪炮的射击死角,突击到城下,进而登城。
于是罗大同令守卫西门的一营加强火力,变三叠依次射击为一人射击,余者只负责装填枪弹,减去变换队形的时间,提高射击速度。同时利用营属和队属的百子铳、奔雷铳短小轻便,便于瞄准射击的优势,不断变换炮位对敌集团目标进行狙击。
尽管火力密度增强,但是蒙元军利用战马快速机动,还是有部分敌军闯过了枪炮的封锁,进入了射击死角。而他们来到城下后丝毫不做停顿,在马上就向城上抛出钩索。常熟城墙不过两丈高,而钩索对于蒙古人来说既是捕捉马匹的生产工具,作战时亦是武器,因此个个玩儿的溜儿。一待索头的铁钩钩住城墙,就立刻借力向上攀登。
守城的宋军兵丁见状立刻以勾刀和利斧斩断皮索,同时早有待命的掷弹兵将手雷从城上抛下,一时间城根脚爆炸声不断,将避于射击死角的敌军炸的人仰马翻,伤亡惨重。有一两个侥幸沿着钩索攀上城头的敌兵,刚一露头不等抽刀跃过垛口,就被几支突刺的刺刀捅下城去。
而就当西门守军阻止敌军登城之时,在后跟进的蒙军突然加快,抓住他们分兵对付城下之敌,火力减弱的机会快速向前突进。又有蒙元弓箭手在盾牌手的遮蔽下向城头抛射箭矢,不求命中率,只是快速发射箭矢,试图以密集的箭雨压制住宋军。
罗大同向其看去,只见这队些步的敌军身穿重甲,携带着爬杆和云梯,举着以门板改造的大盾遮蔽城上的弹雨,分成十数队展开进攻。虽然有人不时被城上射来的枪弹击中倒下,甚至被火炮直接命中,成片的倒下,可他们依然没有停下脚步,无人去抢救死伤者,活着的或重新组队,或填补空缺继续向前突击。他们艰难的突进到火炮射击死角时,有数队蒙军再次加快速度,越众而出……