第五節 法國侵占越南和中法戰爭的爆發
2024-10-02 04:16:01
作者: 姜濤,卞修躍,虞和平;謝放等
一 法國侵占越南
19世紀中葉,法國為了在亞洲建立所謂的「法蘭西東方帝國」,1856年與英國聯合發動了侵華的第二次鴉片戰爭,1858年又與西班牙組成聯軍,以保護天主教為由,進攻越南。第二次鴉片戰爭結束後,法國將侵華軍隊集中到越南,擴大侵越戰爭。1862年6月5日,法國強迫越南阮氏王朝簽訂了第一次《西貢條約》(即《柴棍條約》,柴棍即西貢),這一條約的訂立是越南淪為法國殖民地的開端。至1867年,越南南部(即南圻)各省全部淪為法國的殖民地,由法國總督直接統治。與此同時,法國殖民者試圖探測一條從越南進入中國西南地區的路線,從1866年起組織了一支探險隊,從西貢出發,沿湄公河北上,進行了兩年多的探測,結果發現湄公河上游(即瀾滄江)通航困難,而越南北部(即北圻,當時西方人稱「東京」)的紅河則是進入中國雲南的理想通道。從1873年1月至4月,法國軍火商堵布益成功地帶領3艘小船從紅河上游航行至雲南蠻耗(蔓耗),然後又順河而下,到達河內。連德國和英國人都承認「這是法國人的重大發現,其經濟後果和政治影響會使法國人得到利益,贏得榮譽」。
為了擴大在越南的殖民勢力範圍,進而打開中國西南地區的門戶,法國開始進一步侵占越南北部。1873年11月,安鄴率領一支法國遠征軍攻占了河內及其附近各地,並準備繼續西進,攻占中越邊境上的重要交通門戶保勝(今越南老街)。此時,駐紮在保勝的劉永福率領的黑旗軍,應越南阮氏王朝之請,參加抗擊法軍的侵略。12月21日,黑旗軍配合越南軍隊在河內城郊大敗法軍,收復河內,擊斃安鄴,迫使法軍退出紅河。越南國王封劉永福為三宣副提督,據守紅河兩岸。
不久,越南阮氏王朝在法國威逼下,派人與法國議和,1874年3月15日,在西貢簽訂了第二次《西貢條約》(即《法越和平同盟條約》),以此為根據,法國力圖否定中國與越南的宗藩關係,變越南為其「保護國」,並取得沿紅河至中國雲南的航行權。
中越兩國有著悠久的政治、經濟和文化聯繫,在歷史進程中形成了宗主與藩屬的關係,這種宗藩關係是中國統治者與部分鄰國統治者建立的一種特殊的政治關係。外藩君主利用與清王朝結成宗藩來鞏固其統治地位,而清王朝則通過這種關係取得「天朝上國」名義,以提高它在國內的統治威望和保障邊疆的穩定。按定製,外藩君主必須接受清帝「冊封」並定期派人到京「朝貢」。清帝則按「薄來厚往」的原則,給予「朝貢」的外藩使團以優厚回贈,對外藩也有保護的責任。外藩仍是獨立國,自主處理本國的內政外交,清廷一般並不干預,更不在這些國家設官、殖民和駐軍。所以這種宗藩關係屬於東方的朝貢體系,同西方的殖民體系有著本質的區別。清政府保持中越的宗藩關係,主要是為了維護西南邊疆的安定。越南阮氏王朝被迫與法國兩次訂立《西貢條約》後,仍然希望保持與中國的宗藩關係。從1866年至1881年曾五次派貢使團到中國來朝貢。法國也不得不承認越南國王「不斷地向中國皇帝派遣使節,這些使節按照老習慣,每三年向北京進貢一次,這在某種意義上就等於承認順化統治者對天朝的藩屬地位」。1881年至1882年初,清軍也應阮氏王朝之請,進駐越南山西、北寧地區。
法國侵占越南,不僅在於將越南變為自己的殖民地,更是為了以越南為跳板,進一步侵略中國,稱霸遠東。1873年5月19日法國海軍將領、西貢總督杜白蕾在給法國海軍和殖民地部的一封信中說:「我們出現在這塊富有的土地上,出現在這塊與中國交界也是中國西南各個富饒省份的天然產品出口的地方,根據我的意見,這是一個關係到我們今後在遠東地區爭霸的生死問題。"1879年6月8日,法國駐海防領事土爾克公然向一些傳教士宣稱:「法國必須占領北沂……因為它是一個理想的軍事基地,由於有了這個基地,一旦歐洲各強國企圖瓜分中國時,我們將是——些最先出現在中國腹地的人。」
1882年3月,法國海軍上校李維業率領法軍第二次侵犯越南北部,5月占領河內,次年3月侵入南定省。1883年5月19日,黑旗軍與法軍在河內附近的紙橋發生激戰,以白刃戰大敗裝備精良的法軍,擊斃李維業。劉永福被越南國王封為三宣正提督。8月,由法國海軍將領孤拔率領的南路法軍攻占了越南首都順化,強迫越南政府訂立《順化條約》,將越南正式作為法國的保護國,越南完全淪為法國的殖民地。
面對法國侵略越南進而侵略中國的嚴重局勢。清政府內部出現了「和」「戰」兩派的分歧和爭論。
主戰派大體包括清流官員(張之洞、張佩綸、陳寶琛等)、湘系官員(曾紀澤、彭玉麟、劉坤一、左宗棠等),以及滇、粵、桂三省督撫(劉長佑、張樹聲、倪文蔚等)。主和派主要以直隸總督兼北洋大臣李鴻章為代表。主戰派認為中越唇齒相依,法國侵占越南,對中國便有唇亡齒寒的危險,主張出兵援越抗法。主戰派以山西巡撫張之洞的見解最有代表性,他主張「守四境不如守四夷」,將抗法戰線推到越南境內,並提出了「爭越、封劉(永福)、戰粵、防津」戰略設想。主和派以李鴻章的意見為代表,認為中國「各省海防,兵單餉匱,水師又未練成,未可與歐洲強國輕言戰事」;中國若與法國交戰,「一時戰勝未必歷久不敗,一處戰勝未必各口皆守」,即使暫時取得一定勝利,也會引來法國更大的軍事報復。隨著法國軍事侵略的升級,清朝官員主戰的輿論雖然逐步占據上風,但清朝最高決策層在和與戰的問題上一直舉棋不定,以至「法越構釁,綿延三年,致法占越南,和戰仍無定見」。
同時,中法兩國也在進行外交談判。1882年11月,李鴻章與法國駐華公使寶海在天津舉行談判,就越南問題達成協議。雙方同意:中國駐北越的軍隊退出,法國申明無侵占越南領土主權之意;在保勝立關收稅,准許商船溯紅河至保勝從事進出口貿易;在雲南、廣西界外與紅河中間之地劃界,分歸中法兩國巡查保護。1883年2月,再次組閣的法國總理茹費理推翻了上述協議。9月15日,法國又向中國正式提出一個方案:在北越與中國邊境間劃一狹小「中立區」,中國撤出駐越軍隊,承認法國對整個越南的殖民統治,開放雲南的蠻耗為商埠。曾紀澤、李鴻章分別與法方進行多次談判,10月下旬,談判沒有取得協議而結束。至此,法國政府「決議奪取山西、北寧,將不與中國談判」,企圖通過擴大侵略戰爭來攫取更大的權益。
二 中法戰爭爆發
1883年12月,法國議會通過增撥2900萬法郎的軍費和再派1.5萬名遠征軍的提案。法國遠征軍總司令孤拔率艦艇13艘、法軍6000人,向駐紮在越南山西的黑旗軍和清軍發動進攻,中法戰爭正式爆發。
中法戰爭經歷了三個階段。第一個階段從1883年12月山西之戰開始,到1884年5月《簡明條款》簽訂,戰爭局限在越南北部紅河三角洲。
山西位於紅河南岸,是控制紅河中上游的戰略要地,駐守此地的部隊有黑旗軍3000人、清軍2000人及越軍2000人。因清廷和戰不定,清軍統帥、雲南巡撫唐炯亦消極避戰,擅自「率行回省,置邊事於不顧」。12月13日,法軍在軍艦炮火的配合下,向山西發起猛攻,黑旗軍和清軍堅守激戰3天,傷亡逾千,終因眾寡懸殊,被迫撤離,山西失陷。
1884年2月,米樂接替孤拔任法國遠征軍司令,率法軍1.2萬人,分水陸兩路,於3月8日開始進犯北寧。北寧南拒河內,北蔽諒山,是法軍北上經諒山進逼中越邊境的必經之地。奉命出關督師的廣西巡撫徐延旭雖然所部清軍已達2萬人,但其「遷延不進,株守諒山」,致使前線部將戰敗潰退。3月12日,法軍攻占北寧,又乘勢連陷太原、興化。這一戰役中清軍傷亡約1700人,法軍僅死26人,傷25人。中法戰爭爆發後不到5個月,法軍占領了整個紅河三角洲。
法國在軍事進攻的同時,也對清政府採取了「誘和」政策。法軍攻下北寧後不久,法國海軍艦長福祿諾通過粵海關稅務司德國人德璀琳,向李鴻章遞交了密函,要求撤換曾紀澤的駐法公使職務,作為議和的先決條件,這是因為曾紀澤在對法交涉中一直態度強硬,為法國所惱恨。4月28日,清政府明令撤換曾紀澤使法的職務,暫以駐德公使李鳳苞兼代,以此向法國表示議和的「誠意」。
1884年5月11日,李鴻章和福祿諾分別代表中法兩國政府,在天津簽訂了《中法會議簡明條款》(又稱《李福協定》),共五款,主要內容有:(1)中國南界毗連北圻,法國應保全助護;(2)中國將駐北圻各防營即行調回邊界,中國「尊重」(條約中中文譯作「均置不理」)法國與越南所有已訂與未訂的條約;(3)法國不索賠款,中國准許在中越邊境任意通商;(4)法國答應在與越南修約時,決不出現有損中國威望體面的字樣;(5)三個月後,兩國即派全權大臣,照以上各節,會議詳細條款。
在福祿諾看來,《簡明條款》最重要內容是第二款,這標誌著中國最終放棄了對越南的宗主權。法國政府也希望儘快實現這一條款,簽約後第三天,即指示福祿諾向清政府提出清軍從北圻立即撤出的要求。第二款沒有具體規定中國撤兵的期限,但按第五款規定,自然應該是三個月後雙方訂明了詳細條款,中國再按具體規定撤兵。福祿諾啟程回國的前一天,即5月17日,突然交給李鴻章一件「牒文」,其中片面規定:法軍於20天後,即6月6日占領諒山等地;40天後,即6月26日占領北圻全境。「牒文」最後還聲稱:「這些期限屆滿後,我們將立即進行驅逐遲滯在東京領土上的中國防營。」這個單方面提出的「牒文」,顯然既違背了外交常規,也無任何法律效力。對福祿諾的這一無理要求,李鴻章大概採取了「含糊應對」的辦法,即既未應允,也未駁回。
法國政府接到福祿諾關於中國同意限期撤軍的報告後,即指示遠征軍司令米樂派出軍隊按期前往接收諒山等地。6月23日,法軍上校杜森尼率約800多人的先頭部隊到達諒山附近的北黎(即觀音橋),強行搶占四周山崗,遇見清軍則「不和他們談判,直接向他們開槍」,並槍殺了前來交涉的3名清軍使者。駐防北黎的清軍8個營約3000人被迫還擊,兩次打退法軍的進攻。至次日,法軍共死19人,傷79人,失蹤2人。清軍「陣亡者百數十人,傷者三百有餘」。這次事件,通常稱為「北黎衝突」或「觀音橋事變」。
北黎衝突立即成為法國向中國勒索更大侵略權益的藉口。6月28日,署理法國駐華公使謝滿祿代表法國政府照會總理衙門,指責清政府不執行簡明條款,聲稱法國將保留索賠和報復的權利,要求清政府迅速從北圻撤軍。茹費理也於7月9日照會李鳳苞,要清政府提供忠實執行簡明條款的「擔保」,在《京報》上公布立刻從北圻撤軍的上諭,並賠款25000萬法郎(約合白銀3800萬兩);如一周內得不到滿意的答覆,法國將採取直接行動來自行獲取擔保和賠款。所謂「獲取擔保」就是由法國占據中國的一個沿海口岸,並徵收該地的關稅。12日,謝滿祿又以最後通牒的形式,將茹費理的上述要求照會總理衙門,聲稱「自今日為始,限七日內,復明照辦」。
清政府認為北黎衝突出於誤會,希望依照簡明條款的規定,通過議定詳細條約來解決兩國爭端,遂於7月16日諭令清軍一月之內從北圻全數撤畢,19日又任命兩江總督曾國荃為全權代表,赴上海與新任法國駐華公使巴德諾議定詳細條款。法國則將最後通牒限期延至月底。
7月25日,曾國荃到達上海後與巴德諾開始談判,法方堅持以中國接受賠款原則為前提,若從速了結可減少5000萬法郎。曾國荃答應以撫恤名義給法方銀50萬兩,但巴德諾認為數目太少,堅決不允。清廷則以曾國荃擅自允給,傳旨申飭,拒絕任何賠款。
法國早已作了再次發動戰爭的準備。北黎衝突後,法國將其在中越兩國的艦隊組成遠東艦隊,任命孤拔為司令,配合巴德諾的談判,向中國實行武力威脅。在謝滿祿向總理衙門提出最後通牒的第二天,法國艦隊分別開進了福州馬江和台灣基隆,準備隨時占領中國的這些口岸作為「擔保」。因台灣孤懸海外,基隆所產之煤又可供軍艦燃料,法軍便以基隆作為第一個攻占目標。
1884年8月4日,法國遠東艦隊副司令利士比率艦隊封鎖基隆口,中法戰爭進入第二階段,到馬尾海戰中國戰敗為止,戰爭主要在中國的東南沿海進行。
就在法國任命孤拔為遠東艦隊司令的同一天(6月16日),清政府任命准軍將領劉銘傳為督辦台灣軍務大臣。劉銘傳於7月16日抵達基隆後,立即在基隆和淡水進行防禦部署。當時,台灣守軍共有40營,約2萬人,大部分駐防台南。劉銘傳調台南兩營精銳到台北,使駐防基隆的部隊增至8營共4000人,淡水另有6營共3000人。守軍增築炮台,設防備戰,嚴陣以待。8月5日8時,法國3艘軍艦(共載炮49門,兵員900人)依仗優勢炮火發起進攻。清軍以炮火還擊,擊中法軍旗艦,但因火炮落後,對法艦未構成威脅。法艦集中火力轟毀清軍主炮台,又擊中附近彈藥庫引起強烈爆炸,清軍被迫後撤。法海軍陸戰隊200人強行登陸,占領基隆港口。次日下午,劉銘傳親率官兵,奮起反擊,以優勢兵力將登陸法軍三面包圍。法軍在軍艦炮火的掩護下,慌忙逃回海上。戰後,劉銘傳報告戰績,「生擒法人一名,死傷不下百餘」。但法軍只承認死亡2人,受傷11人。第一次基隆之役以法軍的失敗而結束。
8月16日,法國議會通過追加3800萬法郎的侵華經費,授權茹費理政府「使用各種必要方法」迫使中國屈服。法國政府當天電告巴德諾,向總理衙門提出如下照會:鑑於清廷已諭令清軍撤出北圻,賠款減為8000萬法郎,分10年付給;限48小時答覆,如不接受,將由孤拔「採取他認為有用一切步驟,以保證法國政府取它有權獲得的賠償」。8月19日,謝滿祿將上述照會遞交總理衙門,仍然被清政府拒絕。21日,謝滿祿下旗離京。同日,清廷也電令駐法公使李鳳苞離巴黎,中法關係破裂。次日,法國公使巴德諾正式向孤拔傳達了進攻福建馬江的命令。
馬江又名「馬尾」,位於福建東南的閩江下游,重山環抱,港闊水深,堪稱天然良港。這裡既是福建海軍的基地,也是福州船政局所在地。從閩江口至馬江約30公里,沿岸層巒疊嶂,易守難攻。
還在1884年7月中旬,孤拔率法國艦隊以「遊歷」為名駛入馬江軍港。這支艦隊的來訪,竟受到了清朝「官員們的殷勤歡迎」,孤拔被作為「一個強國的代表」而「受到友好的接待」。結果,一支有備而來的敵軍艦隊,與福建海軍同泊一港長達40天之久,輕而易舉地獲得了攻擊福建海軍的有利條件。
進泊馬江的法國艦隊共有艦艇11艘(巡洋艦5艘、炮艦3艘、魚雷艇2艘,運輸艦2艘),艦載重炮共77門,兵員共1830人。福建海軍的船艦共有11艘(巡洋艦1艘、炮艦8艘、運輸艦2艘),艦載火炮共45門,乘員1190人;另有10餘只舊式中國炮艦和武裝划船。江防陸軍則逐次增至20餘營。雙方海軍相比,法軍占據明顯優勢。
當法國艦隊駛入馬江後,會辦福建海防大臣張佩綸意識到法艦如首先發動攻擊,必然後果嚴重,曾致電總理衙門指出:法軍「先發即勝,船局必毀,綸督各軍必死戰」。他還與閩浙總督何璟聯名建議「塞河先發」,但均被清廷電令阻止。在此期間,總理衙門又請美國出面調停。8月17日,法國拒絕了美國的調停,總理衙門亦照會各國公使:「法國有意失和。」清廷急忙諭令沿江沿海督撫籌防備戰,並電告張佩綸:「現在戰事已定」,令其設法布防,封鎖馬江,阻止法艦進出。雖然如此,清政府對和議仍存幻想。就在謝滿祿下旗離京的當天,李鴻章將李鳳苞的來電轉告總理衙門:法國政府允諾「先恤五十萬兩,俟巴到達津,從容商結。倘商約便宜,冀可不償。」這一消息使清政府以為和議尚存一線希望。23日,總理衙門復電李鳳苞:「法如欲仍議津約,中國亦不為已甚,可由法國派人來津,與李中堂詳議。」然而就在這一天下午,中法馬江之戰已經爆發。
孤拔對發動馬江之戰作了精心策劃。首先,攻擊的時間選定在下午2時江水退潮之時,因福建海軍的主要艦艇泊於法艦上游,退潮時船尾正對著法艦的船頭,炮火無法發揮作用,處於被動位置;相反,法艦則形成十分有利的攻擊之勢。其次,法軍表面遞交戰書,實則不宣而戰。23日上午7時,法駐福州領事將開戰決定通知各國領事,英領事轉告閩浙總督何璟「三日內法必開仗」。10時許,法領事才將正式照會送交何璟,此時距開戰時間僅3小時多。何璟可能將照會中的「本日」誤解為英領事所說的「三日內」,也可能是由於陰陽曆換算或翻譯的問題,到下午1點半以後,才弄清開戰的確切時間,立即電告在馬尾的張佩綸和在長門的福建將軍穆圖善。張佩綸接到急電,譯電尚未及半,炮聲已經傳來。
23日下午1時56分,停泊在馬江的法國軍艦突然發動進攻,以魚雷、榴彈攻擊停泊在上游的福建海軍旗艦「揚武」號及炮艦「福星」號。「揚武」號倉促應戰,船尾被魚雷擊中,機器房被榴彈炸毀,受重創迅速沉沒。「福星」號掉頭沖入敵陣,「建勝」、「福勝」兩艦隨之,連連發炮還擊。法艦集中炮火,將三艦先後擊沉。與此同時,停泊下游的炮艦「振武」號遭到法艦合圍亦被擊沉,「飛雲」、「濟安」兩炮艦沒來得及起錨,即中炮沉沒。另2艘受傷自沉,2艘中炮被焚。至14時30分,福建海軍的11艘艦艇全部沉沒或焚毀。停泊在海潮寺前及羅星塔兩側江岸附近的40餘只小型炮船及商船亦大部被擊沉、擊毀。中國官兵陣亡521人,受傷150人,失蹤51人。法國海軍則僅有5人斃命、15人受傷。
24日11時30分,孤拔率巡洋艦一艘及炮艦兩艘,駛近船廠,開炮猛轟,船廠的倉庫、設施及即將竣工的一艘巡洋艦都受到不同程度的摧毀。此後,法艦沿江而下,逐次擊毀兩岸炮台。26日,清廷始電令穆圖善「趕緊堵塞海口,截其來往之路」。但為時已晚。8月27日起,法艦炮轟閩江入海口的長門、金牌炮台。30日,法國艦隊駛離閩江,揚長而去。
馬江之戰爆發後3天,即8月26日,清政府向法國正式宣戰,到1885年4月清政府下令停戰,是中法戰爭的第三階段。戰爭除在東南沿海繼續進行之外,主要戰爭在中越邊境。
法國政府決定採取以戰逼和的策略,1884年9月底,法艦隊司令孤拔奉命率兵艦再次進犯台灣,法軍分兵兩路,由孤拔率主力艦隊進攻基隆,由利士比率另一支艦隊進攻滬尾(即淡水港)。台灣防務大臣劉銘傳考慮到基隆靠近海口,炮台在8月間被法軍轟毀,便堅壁清野,毅然將主力撤至距基隆80里的滬尾,重點保衛台北府城。10月1日法軍在基隆登陸,因疑清軍有埋伏,不敢貿然前進,至4日攻占基隆後始發現是一座空城。10月2日晨6時35分,守衛滬尾的清軍採取先發制人的戰術,比法軍預定的開戰時間提前3小時半,先行向法艦開炮,法軍措手不及,3艦受創,雙方炮戰持續至下午4時。次日,孤拔派艦馳援,使攻擊滬尾的法艦增至7艘,海軍陸戰隊約600人。10月8日上午10時,法海軍陸戰隊強行登陸。劉銘傳指揮守軍奮勇反擊,激戰3小時,法軍敗退海上。這一仗擊斃法軍「拉加利桑尼亞」號戰艦陸戰隊司令方丹,以及「雷諾」號的見習軍官羅蘭和狄阿克。據清軍戰報,法軍共被擊斃300餘人,溺死七八十人,受傷百餘人;清軍傷亡200餘人。據法軍統計,法軍死17人,傷49人。據海關統計,清軍死80人,傷200人。法軍戰敗後,調集其遠東艦隊全部艦隻封鎖了台灣海峽。
1885年1月中旬,總兵吳安康奉命率南洋海軍軍艦5艘從上海出發援台,孤拔率法艦隊7艘北上阻截。2月13日,雙方艦隊在浙東石浦附近洋面遭遇。吳安康率「開濟」等3艦擺脫法艦追擊,駛入鎮海口內;「澄慶」、「馭遠」兩艦因航速較慢,駛入石浦港。2月15日(農曆正月初一)凌晨3時半,法魚雷艇進港襲擊「澄慶」、「馭遠」,兩艦發炮還擊,但見港口已被法艦封鎖,「恐船資敵用」,被迫「開水門自沉」。10多天後,孤拔髮現南洋海軍3艦已泊入鎮海港,便率艦隊鎮海直撲鎮海口外洋面。
在法艦進犯之前,浙江巡撫劉秉璋、提督歐陽見利、寧紹台道薛福成等官員已經採取了各種防範舉措,在鎮海海口釘木樁、沉石船以阻敵艦;在南北兩岸的金雞山和招寶山上增築炮台,調集兵力萬人,扼險駐守。南洋3艦也作好了協同作戰的準備。從3月1日法軍向鎮海守軍正式發起攻擊起,至3月20日,法軍的多次進攻或偷襲均被守軍以炮火擊退,法艦多艘受傷,官兵傷亡數十人,孤拔本人也中彈受傷,法艦隊不得不慌忙撤走,鎮海之戰再次以法軍失敗而結束。3月30日,法艦隊占領澎湖列島,以為基地,但孤拔終於在6月11日死於澎湖島上。
三 鎮南關大捷與中法新約的訂立
法軍按照預定的東攻台北、西取諒山的作戰方針,在進犯中國東南沿海的同時,又在中越邊界地區增調軍隊,發動進攻。
清政府自宣戰後,確定了沿海防禦、陸路反攻的作戰方針。擔任反攻的是東線的桂軍以及西線的滇軍和黑旗軍。1884年9月中旬,東線桂軍8000人兵分兩路向北圻進軍,進抵船頭(今陸岸)、郎甲;廣西巡撫潘鼎新率部駐紮諒山,策應兩路。10月,法軍司令尼格里率法軍主力3000人攻占郎甲;進攻船頭的另一支法軍則遭到桂軍的反擊,形成對峙,因潘鼎新未及時增援,駐守船頭的桂軍見郎甲失守,後援無望,被迫後撤。法軍因後援不濟亦暫取守勢。與此同時,西線的滇軍和黑旗軍進圍宣光城,但東線桂軍卻未能及時以主力反擊,策應西線進攻,而是株守諒山。
1885年2月4日,法軍司令尼格里率法軍主力7000餘人,集中優勢火力,向東路桂軍發起猛攻。潘鼎新指揮失當,戰勝不追,戰敗即退,最後放棄諒山,退入關內。2月13日,法軍占領諒山。23日,法國攻下中越邊境重鎮——鎮南關(今廣西友誼關)。諒山、鎮南關失守,形勢十分危急。新任兩廣總督張之洞起用年近七十的老將馮子材及王孝祺分率粵軍18營援桂,對清軍後來取得鎮南關大捷起了關鍵性的作用。
馮子材的軍隊未到之前,清軍在廣西前線的兵力共有50餘營,2萬多人。潘鼎新為推卸責任,竟諉罪於馮子材援軍來遲。張之洞得知情況後,立即電奏朝廷,為馮子材申辯。同時令馮子材任廣西關外軍務幫辦,授以鎮南關前線指揮權,允許他相機行事。馮子材團結各軍將士,廣泛聯絡邊民,加緊修築工事,作好了反擊侵略軍、收復鎮南關的準備。法軍見中國軍民聲勢強大,便炸毀鎮南關,退駐關外30餘里文淵城。馮子材率軍移至關內8里處關前隘,並在關前隘兩旁的山嶺上趕修炮台,築起了一道三里多橫跨東西高嶺的長牆,進行了周密布防。同時主動出擊法軍占據的文淵城,打亂法軍的侵略部署。
3月23日上午10時30分,法軍1000餘人分兩路直撲關前,另一路1000人作為預備。馮子材率所部及王孝祺部正面迎敵,奮勇抵抗;各路清軍相互配合,或抄襲敵後,或斷敵補給。次日晨,法軍分3路再次進攻。馮子材身先士卒,奮勇殺敵,清軍夾擊反攻,三面合圍法軍,當地各族民眾,紛紛前來助戰。激戰至傍晚,法軍全線崩潰。清軍乘勝反攻,27日攻克文淵,29日收復諒山。這場戰役據清方的估計,在鎮南關共殲敵千餘人,在收復諒山戰役中又殲敵千餘人。但據法軍的統計,在鎮南關一役中,23日死4人,傷25人;24日死70人(其中軍官7人),傷188人(其中軍官6人);兩天總計,死74人,傷213人;在諒山一役中死3人,傷37人,失蹤4人。這場戰役給了不可一世的法軍以沉重的打擊。法國遠征軍總司令部從河內發給法國政府的電報說:「我痛苦地報告你,尼格里將軍受重傷;我軍撤出諒山,中國軍人數眾多,聲勢浩大地湧出三個縱隊,勢不可當地攻擊我軍。」參加這次戰役的法國軍官威狄埃上尉事後也心有餘悸地記下了當時的情形:「在我們的腳下,敵人從地上的一切縫隙出來,手持短戟,開始了可怖的混戰。他們的人數比我們多十倍、二十倍。他們從我們的四周一齊躍出。所有軍官和士兵都被圍住、俘虜,敵人由各方面射殺他們,然後割去他們的頭。」
在西線戰場上,從1884年10至1885年3月,法軍占據的宣光城一直被黑旗軍和滇軍圍困。在鎮南關激戰的同一天(3月23日),黑旗軍和滇軍在越南義軍的配合下,在臨洮大敗法軍,收復廣威府等十幾個州縣。正當他們準備進攻宣光之際,清廷卻頒布了停戰詔書。
鎮南關——諒山大捷是鴉片戰爭以來中國所取得的一次重大勝利,也是法國發動侵越和侵華戰爭以來最大的一次慘敗。連法國茹費理內閣也因此被迫下台。巴黎的報紙還把法國在鎮南關的失敗,比為1815年拿破崙在滑鐵盧的覆沒。張之洞也說:「自中國與西洋交涉,數百年以來,未有如此大勝者。」
戰場形勢的急劇變化,使中國在軍事上和外交上都處於有利的地位。但清廷卻主張乘勝而收。赫德也一再向清廷施加與法議和的壓力。清廷決意乘勝求和,授權中國海關駐倫敦辦事處的英人金登干於4月4日與法國外交部政務司司長畢洛在巴黎簽訂了《中法停戰條件》,主要內容為:承認中法《簡明條款》有效;雙方立即停止敵對活動,法國撤除對台灣的封鎖,中國從越南撤兵;法國派大臣一人至天津或北京商定所訂條約的細目,然後再由兩國訂立撤兵日期。於是,清廷頒發停戰詔令。上諭傳至前線,將士們拔劍砍地,扼腕憤痛,不願退兵。全國不少地方也先後通電譴責和議。張之洞也接連電奏朝廷請求延緩撤兵,力主「停戰則可,撤兵則不可,撤至邊界尤不可。關外兵機方利,法人大震,中法用兵年余,未有如今日之得勢者,我撤敵進,徒中狡謀,悔不可追。」他請求朝廷展限十日或半月撤兵,但三次電奏力爭都受到清廷的申斥。
1885年5月13日,清廷授權李鴻章在天津與法駐華公使巴德諾談判中法正式條約。其實,此時的李鴻章並非真正的「全權代表」。天津不過是談判的前台,而後台則在巴黎。還在1885年2月27日,清政府便通過赫德牽線,授權金登干與法國外交部秘密議和。中法和約的談判,是由法國把事先擬定的條約草案交給金登干,由他電告赫德,赫德再交給總理衙門;待清政府提出修正意見,其間也徵求李鴻章的意見,然後再經赫德交金登干,由這位英國人與法國外交部政務司副司長戈可當具體磋商。李鴻章和巴德諾在天津的主要工作是核對細節和約文。清政府所爭議的不過是有關「不致有礙中國威望體面」的虛文,掌握清王朝最高決策權的仍然是慈禧太后。
6月9日,《中法會訂越南條約》(即《越南條款》或《中法新約》,又稱《李巴條約》)在天津簽訂,共10款,主要內容有:(1)清政府承認法國與越南訂立的條約;(2)在中越邊界上指定兩處為通商口岸,一處在保勝以上,一處在諒山以北,允許法國商人在此居住,並設領事;(3)中國雲南、廣西同越南邊界的進出口貨物應納各稅,照現在通商稅則較減;(4)訂約後6個月內,由中法兩國各派官員赴中國與北圻交界處會同勘定中越邊界。(5)中國日後修造鐵路時,應與法國商辦;(6)法軍撤出基隆、澎湖。
此後,清政府又被迫與法國簽訂了《中法越南邊界通商章程》(1886年)、《中法界務條約》(1887年)、《中法續議商務專約》(1887年)等一系列不平等條約,使法國得到很多權益。通過上述不平等條約,中國西南的大門已為法國洞開,為法國進一步侵略中國,進而爭霸遠東提供了有利的條件。法國侵略者因而宣稱:「亞洲現在是在三大強國的手中——俄國、英國和中國,而我們就是第四個。」
中法戰爭對中國早期現代化的演變也產生了影響,清政府針對中國海軍力量薄弱的問題,開始加快了海軍早期現代化的進程,於1885年10月設立了「總理海軍事務衙門」,負責管理和指揮全國海軍,同時擴充北洋海軍,並於1888年正式成軍。清政府也深感台灣在國防上的重要性,亦於1885年10月決定台灣正式建省,改福建巡撫為台灣巡撫,以劉銘傳充任。定彰化中路(今台中市)為省會,設首府曰「台灣府」(省會未建成前,先以台北為施政中心),全台共有三府(台灣、台北和台南)、一直隸州(台東)、十二縣、五廳。劉銘傳在台灣倡行自強新政,加強海防建設,推動了台灣社會經濟的發展,促進了台灣的早期現代化。
中法戰爭促進了中國維新思想的進一步發展,維新人士不僅積極主張學習西方長技,發展近代工業,也開始明確要求改革君主政體,仿效西方建立「君民共主」政制。中法戰爭也導致了晚清政局發生重要變化。光緒十年(1884年)的「甲申朝局之變」使清流人士遭受打擊,其後果即是朝政的日益腐敗。張謇曾將這一年視為晚清朝政日益走向腐敗衰落的關節點:「自恭王去,醇王執政,孫毓汶擅權,賄賂公行,風氣日壞,朝政益不可聞,由是而有甲午朝局之變,由甲午而有戊戌政局之變,由戊戌而有庚子拳匪之變,由庚子而有辛亥革命之變。因果相乘,昭然明白。」儘管從中法戰爭後到甲午戰爭前的十年間,中國已被外國人視為在亞洲的四強(中、法、英、俄)之一,也沒有大規模的列強侵華戰爭發生,但中國的邊疆危機依然存在;自強新政在近代軍事和近代工業方面有所擴展,但在制度性改革方面則少有進步,這就為此後中國在甲午戰爭中失敗埋下了伏筆。