镇南关大捷和不败而败的战争结局
法军偷袭马江成攻后,集中兵力进攻台湾。1884 年 10 月初,孤拔将舰队分为两部,向基隆和淡水同时发动进攻。清军放弃基隆力保淡水,法军屡攻淡水不下,伤亡惨重。孤拔见攻基隆受阻、攻淡水失败,便率 20 多艘军舰封锁台湾所有海口,企图使台湾因得不到内地支援而不攻自破。但是,福建、广东、上海等地军民千方百计打破法军封锁,向台湾运送军械、饷银和兵员。台湾军民在困难的条件下坚持战斗。使法军夺占台湾的目的未能实现。1855 年 1 月,孤拔率舰队北上进攻淅东门户镇海。清军官兵凭借坚固防御,打败法舰 3 次进攻重伤其旗舰,孤拔被击伤,不久死于澎湖。3 月底,法军攻占了澎湖。
当东南沿海在抗击法军进攻的同时,清军的陆路战场亦在越南北部分东西两线进行。东线清军越过谅山、谷松,进抵郎甲、船头等地;西线清军与黑旗军联合作战,于 1884 年 10 月前进到宣光一带,准备攻占宣光。法军为了达到威慑清廷的目的,决定在西线取守势,东线取攻势。1855 年 2 月,得到增援的法军在东线发动猛烈进攻,清军节节败退,法军很快攻陷战略要地谅山,又占文渊城,一度闯入镇南关(今友谊关),把战火烧到了中国境内。
正当广西震动、边关危急之时,在军中素有声望、年近 70 的老将冯子材, 被清政府任命为关外军务帮办,指挥前敌诸军,率部增援东路清军。他根据镇南关地形险要的特点,修筑长墙作为防御工事,并集中了约 80 营的兵力,
形成了严密的防御体系。1885 年 3 月 23 日,法军第 2 旅司令尼格里率军分 3 路猛攻长墙。冯子材坐镇壕墙,沉着指挥。当法军逼近长墙时,他手持倭刀大吼一声,跳出战壕,将士们随主帅一齐冲向敌阵,展开了激烈的肉搏战。法军三面被围,死伤甚众,只得狼狈败退。镇南关大捷,歼灭法军精锐近千人,不仅使东线清军反败为胜,整个中法战争的战局亦发生了根本性的变化。此后,冯子材乘胜挥师南下,很快收复了文渊、谅山、郎甲、船头等地。这时,西线清军和黑旗军也取得了临洮大捷,连克数十州县。东西线清军连战皆捷,越南北部抗法战争出现了前所未有的好形势。
法军在镇南关等地的惨败,导致了法国茹费里内阁的倒台,于是法国政府不得不加紧了与清政府的谈判。正当中国军队掌握战场主动权,准备把法军赶出越南北部之际,清政府却于 1885 年 4 月 4 日与法国在巴黎签订了停战
协定,承认了《中法简明条约》,并于 4 月 6 日下令从越南撤军,满足了法国在战前提出的要求。在中法战争中,作为战败国的法国反而得到了在战场上没有得到的东西,这种不胜而胜、不败而败的结局,进一步暴露了清政府的腐败和无能。