如果说,南方的旧式练营还能通过几十年的积攒,装备一些新式枪械的话(冯子材的萃军和黑旗军都是多种枪械和冷兵器混装,冯军手中有一些新到的温切斯特和马提尼亨利,黑旗军则用前装的米涅枪充数),更依赖专业人才和庞大财源的炮兵,大概是此战明法两军差距最大的部分。
明军依靠的是少数12磅拿破仑炮(美国南北战争剩余物资)和陈旧的8磅红衣炮,在炮战中被法国军的1877型战炮完全压制,几乎毫无还手之力。
到11时左右,明军炮兵已经哑口无言,长墙中部被轰开几个大的缺口,土石堡垒被摧毁大半,法军趁势发起冲击。
明军阵地虽然被破环严重,但毕竟还有十倍的兵力优势,冯子材命令集中所部全部快枪手(装备温切斯特杠杆步枪),在极近的距离内对法军泼洒瓢泼弹雨,只有单发步枪的法军支撑不住,只能暂且后退。
下午4时,法军兵分三路,在炮兵掩护下发起第二次进攻,这次他们把5管11mm诺登飞机枪搬到前沿压制明军步枪火力,明军又被打的抬不起头来,法军成功突破长墙,开始向两翼发展。
就在此时,七十多岁的明军主帅冯子材挥舞长刀,率领两个儿子和亲兵队跃出阵地,对法军发起反冲锋,随即明军主力士气大振,汹涌而出,与法国人展开白刃战。
由于距离很近,害怕误伤,法军机枪和火炮都无法开火,结果冲锋的法军被越来越多的明军压得步步后退,法军也只能不断派遣援军试图逐退明军反攻。
血腥的战斗进行到黄昏,黑旗军和另一路明军趁视线下降的机会大举出动,从两翼包抄法军,刘永福部黑旗军敢死队在付出惨重伤亡后冲上法军炮兵阵地,杀死法军一百余人,缴获火炮八门。
明军则切断法军退路,消灭没有什么战斗力的越南伪军和民夫,摧毁其后勤阵地,缴获2000发炮弹和6万发子弹。
战至此时,法军已经被明军三面夹击,指挥官尼格里上校被击中受伤,认识到占领北圻已经无望后,法军迫不得已只能撤退。