12日法军水陆并进,分三路向北宁进攻;一路由城南的新河北攻,一路由城东西攻,一路乘舰船驶至城北之涌球进攻。陆路法军在桂阳、揽山、左河等地与清军激战。水路法军舰船沿江北上,突破涌球塞河处,猛攻涌球土山。据守涌球的提督陈朝纲两营闻炮顿溃,附近的周炳林营亦溃。法军占领涌球土山后,将大炮安置在山上,直接轰击北宁城,对北宁造成严重威胁。黄桂兰、赵沃急忙商调慈山各军来援。慈山之军不能应急,副将党敏宣八营远避六头外,屡调不至,再加之没有战役预备队,无法组织反击或是增援受威胁最大的涌球方向。北宁守军再无力坚守城池,于是选择弃城而逃。清军随即全线崩溃,退至太原、谅江一带。12日晚,法军进入北宁城,13日继续追击清军,连克太原、谅江、郎甲等地。桂军退守谅山以南山地,黑旗军撤回兴化。
北宁战役历时五天,清军伤亡一千余人。4月初,法军移兵进攻西线的滇军。岑毓英不战而退,将滇军撤至中越边界的河口、保胜一带。兴化、临洮、宣光相继失陷。
至此,短短两三个月的时间,法军基本控制了越南北部整个红河三角洲所有重要城镇。
山西、北宁失守的消息传到北京,舆论一片哗然。慈禧太后极为震怒,将前军主帅徐延旭革职,后发配新疆。黄桂兰已自杀身亡,免于追究。但这并不足以平息太后心中的怒火,于是全面改组军机处。恭亲王奕被黜退,他的同事们,宝鋆、李鸿藻、景廉、翁同龢,一概以“委蛇保荣,办事不力”的罪名逐出军机处。新的权力班子,以礼亲王世铎、户部尚书额勒和布和阎敬铭、刑部尚书张之万、工部左侍郎孙毓汶五人为军机大臣,贝勒(后为庆亲王)奕劻主持总理各国事务衙门,而实际大权掌握在醇亲王奕譞(光绪帝生父)的手中。随后为了表示重整旗鼓,鼓舞士气,又任命潘鼎新为广西巡抚,张凯嵩为云南巡抚,要求二人以上到任,进行善后。
(三)《中法会议简明条款》
1884年4月,法国海军中校福禄诺通过粤海关总税务司的德国人德瑶琳,向李鸿章提出谈判要求。福禄诺给李鸿章捎了封信,说如果中国承认越南和法国的保护协定,并允许法国人在西南地区通商的话,可以在措辞上顾及大清帝国的颜面,并且可以在军费赔偿上做出让步,但要是不答应的话,法国就要再派舰队扩大战局。这封信,虚虚实实,实实虚虚,要求中国面对现实是实,维护面子是虚;赔偿军费是虚,扩大权益是实。
李鸿章对这场战争本来就没什么兴趣,一开始就不主张为了越南去以卵击石,现在当然愿意和谈。于是李鸿章将福禄诺的信转呈总署,主张立即与法国谈判。他说:“若此时与议,似兵费可免,边界可商。若待彼深入,或更用兵船攻夺沿海地方,恐并此亦办不到。与其兵连祸结,日久不解,待至中国饷源匮绝,兵心民心摇动,或更生他变,似不若随机因应,早图收束之有裨全局。”
李鸿章对当时敌强我弱的内外形势的分析并不是毫无道理,但他妥协退让的对外方针完全迎合了法国侵略者的需要。同时,李鸿章在这种思想指导下与法国人议和,无论如何也不能为国家争得利益。然而他的这种态度,也恰恰迎合了慈禧太后的意图。清廷在谕旨中说:“出师护越,越不知感,法又为难,兵连祸结,亦非万全之策。”
4月22日,军机处传旨李鸿章说“事属可行,许其讲解”,批准了李鸿章与福禄诺议和的建议。
于是,经过短暂的谈判,5月11日,李鸿章与法国代表福禄诺在天津签订 《中法会议简明条款》(又称 《李福协定》)。主要有五款内容:中国承认法国与越南签订的条约和对越南的保护权;法国与越南修约时,不出现有损中国体面的字样;中国驻越清军调回境内;法国不索赔款,中国在中越边境开埠通商;三个月后,双方派遣全权大臣,制定详细办法。
《中法会议简明条款》只是初步协定,具体条款还需要进一步议定。5月17日,福禄诺交给李鸿章一份节略,通告法国已派巴德诺为全权公使来华谈判详细条款,但在中国军队撤军接防问题上,福禄诺自说自话,单方面规定了在越南北部全境向中国军队原驻地分期“接防”的日期。
对此,李鸿章既没有同意,也没有明确表示反对,而且没有上报清廷。李鸿章之所以不上报朝廷,关键在于双方对“调回边界”的理解不同。清廷的理解是清军调回边界地区,而不是中国境内,而法国人的理解则是要求清军撤出越南境内。正因为如此,李鸿章才把这事给瞒了下来,唯恐清廷不同意,导致整个和谈功亏一篑。
6月6日,法国政府与越南皇帝阮福明订立《第二次顺化条约》,否定了清朝对越南的宗主权。
(四)北黎冲突
福禄诺的本职工作是海军舰长,并不是职业外交家,规定撤兵时间本来是重大问题,但他对外交辞令一无所知,在没有取得任何凭证的情况下,他就把李鸿章的含糊其辞当成了明确的应允。于是他以为事情已经便办完了,第二天便奉命起程回国,同时通知在越南的法国远征军总司令米乐:“中国人答应限期撤军!”
6月23日,米乐派遣杜森尼中校率领一支九百人的部队到谅山附近的北黎接防,要求清军立即退回中国境内。中国驻军没有接到由李鸿章代表的清廷的撤军命令,不敢擅自决定,所以要求法军等待清廷的回命。争执之下,杜森尼开枪打死清军谈判代表,并命令法军炮击清军阵地,清军被迫还击。战至深夜,双方对峙。24日晨,清军除了以两营作为预备队留守驻地外,其余六营全部投入战斗:三个营守大路正面抗击,一个营从右侧迂回攻击,两个营从左侧包抄断敌人后路。法军三面被攻,被迫收缩,拼死抵御。清军越战越勇,正面抗击部队听得两翼攻击部队枪炮声激烈,立即出击,极力猛攻,法军支持不住,被迫溃退。清军追击数里后退回驻地。
两天交战下来,法军死伤近百人,清军伤亡更是惨重。这次事件史称“北黎冲突”(又称“观音桥事件”)。
事件发生后,法中双方相互指责对方破坏和约,然而事件毕竟是由杜森尼杀害中方谈判代表引起的,主要责任显然是在法国一边。但是强横的法国人却不这样认为。法国总理茹费理在下议院公开叫嚣:谅山之事是中国预谋已久的攻击和设伏。
6月28日,清政府总理各国事务衙门首席大臣奕劻对前来递交抗议照会的法国驻中国代理公使谢满禄明确指出:“谅山是中国驻兵之地……法兵前往谅山,扑我营盘,先行放炮,中兵不能不抵御。”中国政府并再三表示,在《中法简明条约》之外不存在李鸿章与福录诺的续约,因此,也不存在中国违反条约之说。
7月12日,法国代理公使谢满禄向清廷发出最后通牒,限中国立即从越南撤军,并赔偿军费二亿五千万法郎(约合白银三千八百万两),要求清朝七天之内予以答复。13日,法国新任驻中国大使巴德诺更加露骨地表示:“如果我们在各点上没有获得满足的话,我们绝对是要坚决使用武力的。”同一天法国海军部长裴龙在发给法国远东舰队司令孤拔的电令中说:“派遣你所有可调用的船只到福州和基隆去。以防我们的最后通碟被拒绝,一定要先拿下这两个埠口。”
7月14日,法国两艘军舰以“游历”为名,驶进福建闽江口。16日,孤拔也乘军舰到达闽江口。巴德诺在上海叫嚣,如果中国不接受法国的条件,孤拔就要执行最后通牒,消灭福建海军,摧毁马尾船厂,占领福州。
清政府虽然认为法国明显是在无理勒索,但为了避免事态扩大,还是派两江总督、南洋大臣曾国荃为全权大臣于7月下旬在上海与巴德诺谈判。巴德诺咬住二亿五千万法郎的赔款坚决不松口,这离中方最终所能承受的底线——五十万两白银(约合三百三十万法郎)相去甚远,于是谈判破裂。
战争进一步升级,并在中国东南沿海地区和越南北圻两个战场上同时展开。