1884年中法战争爆发,在发动中法战争时,法国已从普法战争失败所造成的窘境中摆脱出来,军事力量有所恢复.中法战争过程中,法国远征军的兵力最多时有两万余人。法国远征军司令部下辖两个旅和一个内河舰队。每旅辖三个步兵团和炮兵、骑兵、工兵、电信兵等部队。步兵、骑兵的轻武器主要是夏什普式中心发火击针后装线膛枪,口径十一毫米,射速为每分钟七发,射程一千八百米。此外,还有克罗帕契克连发枪和哈齐开斯机关炮等。野战炮兵每连有75mm火炮六门。法国远征军主要由三部分人组成:本国兵约占三分之一;雇佣兵(由欧洲其它国家招募)为数不多;附庸兵(阿尔及利亚和越南人)数量最大。这几种成分的军队待遇、装备、补给也不同。
陆路战场仍集中在中越边境地区和越南北部。早在1873年12月21日,黑旗军首领刘永福部将吴凤典就曾刀斩法王附马安邺,取得罗池大捷。1882年,法国茹弗里第二次组阁,增加军费550万法郎,派出援军侵越。但1883年黑旗軍换装了部分美国南北战争后对亚洲倾销的剩余武器,計有美制M1833\/1855后装线膛骑枪,溫彻斯特连发卡宾 枪,1847型的柯尔特左轮 手枪800余枝。因此在1883年5月19日越南境内爆发的纸桥之战中由法軍上尉代理营长李维叶(Cpt.Henri Laurent Riviere)率领的500名法軍和陆战队混编部队,遭到黑旗军绝对优势火力(至少1000枝各式枪械)从暗中埋伏的纵射,李威利所部270余人遭俘杀,李威利被黑旗军枭首。
1884年底,刘永福的黑旗军配合西线清军,围困占据宣光城的法军达3个月之久,城中法军几乎弹尽粮绝。但法国援兵到来,黑旗军失利。1885年2月,法国再次增兵越南,集中两个旅约万余人的兵力向谅山清军发动进攻,广西巡抚潘鼎新不战而退。2月13日,由于潘鼎新指挥失误,前线诸军难于支持后撤。潘鼎新惊慌失措,于二月十三日晚焚弃谅山、连夜奔逃,法军进犯文渊州,守将杨玉科力战阵亡。
法国侵略军攻陷镇南关,炸毁关门,并在关前废墟中插上一块木牌,用汉字写着“广西的门户已不再存在了”,中国军民在法军退走后在关前插上木桩,写上“我们将用法国人的头颅重建我们的门户!”
1884年4月清朝政府起用已经告老还乡的原广西提督冯子材,任命他为尚、雷、廉、琼四府团练督办。冯子材虽年老,却能以救国救民为己任,欣然受命,树旗招兵,在很短的时间内,便组建十八个营,约九千人军队,名为“萃军”。经筛选招募的萃军战士的民族意识很强;且大多数人刚猛力强,精通武艺。经过严格训练后成为一支能打硬仗的劲旅。由于潘鼎新的战败,清政府革去他广西巡抚职务,任命年近7旬的老将冯子材帮办广西军务,领导镇南关前线的抗法斗争。
根据当前敌情和镇南关周围的地形条件,冯子材经过反复勘察,选定关前隘(今隘口南)为预设战场。冯子材命令部队在关前隘筑起一道长1.5公里、高2米多、宽1米多的土石长墙,横跨东西两岭之间,墙外挖掘1米多深的堑壕,东西岭上修筑堡垒数座,从而形成一个较为完整的山地防御体系。
在兵力部署上,冯子材率所部9营扼守长墙及两侧山岭险要,担任正面防御;总兵王孝祺部8营屯冯军之后为第2梯队;湘军统领王德榜部10营屯关外东南的油隘,保障左翼安全并威胁敌之后路;冯子材另以所部5营屯扣波,保障右翼安全;广西提督苏元春部18营,屯关前隘之后2.5公里的幕府为后队;另有12营屯凭祥机动。总计前线兵力约60余营,3万余人。
清政府也即时提供军火,计有英国1871年式马梯尼后装枪,奥地利的曼利夏后装枪,美国的林明敦后装枪、诺登飞和加特林机关炮等。但由于国内生产和进口的新式武器有限,远难满足全国军队的需要。因此,和法军相比,清军不但组织编制和训练等方面相形见绌,在武器装备方面也差距很大。陆军武器土洋参杂,既有后装枪炮,又有不少刀矛、鸟枪、土枪等,且式样繁杂,质量较差,又无统一的后勤机构保障作战供应。这些,都使军队作战行动受到影响。
3月21日,冯子材率王孝祺部出关夜袭法军占据的文渊,击毁敌炮台两座,取得较大胜利。清军的主动出击,使骄横的法军恼羞成怒。法军东京军区副司令尼格里上校决定不等援军到齐即发起进攻。
3月23日晨,法军2000余人进攻镇南关,上午10时许,法军在山炮掩护下,攻占了隘东小青山上清军的三座堡垒。另一股法军则“势如潮涌”般扑向关前隘长墙。战斗打得非常激烈。双方“炮声震天”,地动山摇,硝烟弥漫、沙石横飞。法军用山炮向驻守关隘的中国守军猛烈轰击,掩护步兵冲锋,而冯子材所部用格林炮向山下仰攻的法军发射着密集的火力。山野上,进攻的法军被成片的打倒。双方伤亡惨重。守军英勇抗击,誓与长墙共存亡,击退了法军的进攻。