1883年10月,羅馬尼亞加入德意奧三國同盟,形成了以德國為中心的同盟體係。次年,英籍美國人海勒姆·史蒂文斯·馬克沁正式完成馬克沁重機槍的研製,很快就投入實戰,發揮出巨大的威力。1885年,台灣正式由府升格為省,劉銘傳任台灣省首任巡府。
1884年8月26日,清政府正式向法國宣戰後,命令陸軍各部迅速趕赴越南北圻戰場,向法軍展開反攻,收複失地,給法國侵略者以沉重打擊。
當時,駐越南的中國軍隊分為東線和西線兩個部分,東線桂軍駐紮在諒山、鎮南關一帶,西線黑旗軍、滇軍駐紮在保勝一帶。駐越中國軍隊在得到清政府反攻的命令後,迅速出兵。
東線桂軍開始進展順利,到1884年10月初,一路進占郎甲及以北地區。—路進占船頭,並攻陷了法軍駐守的陸岸。此時,法國侵略軍為了粉碎清軍的反攻,進而攻占諒山,並派兵分別向郎甲、船頭進攻。8日,法國侵略軍開始向郎甲和船頭發動進攻。由於駐守郎甲的方友升等人沒有做充分的防禦,清軍倉促應戰,不久郎甲就被攻陷。與此同時,船頭也很快落入敵手。西線滇軍、黑旗軍於10月底開始圍攻宣化。在得知宣化危急後,法軍主力便從東線撤回,支援西線,隻留一部兵力守衛郎甲、船頭,積極做下一步進攻諒山的各種準備。
1885年1月底,法軍主力返回西線,駐紮於船頭,開始轉守為攻,準備向諒山、鎮南關大舉進軍。2月初,法軍從船頭出發,向穀鬆發動進攻。清軍頑強抵抗,傷亡甚眾。12日,法軍攻占了委坡。潘鼎新聞訊,於當夜率軍放棄諒山,逃往鎮南關,法軍未開一槍一彈順利占領了諒山。接著,法軍又乘勝向鎮南關發動進攻。清軍頑強抵抗,後因主將楊玉科中炮犧牲,清軍潰退。23日,法軍趁勢侵占了鎮南關。麵對法軍的進攻和潘鼎新的逃跑,當地群眾紛紛組織起來反抗,給侵略者以嚴厲打擊。25日,法軍因經常受到當地群眾襲擊,加上兵力不足,在炸毀鎮南關城牆及其附近防禦工事後,退回諒山。
幫辦廣西軍務年近70的老將馮子材聽說鎮南關失守,立即率兵援救。他根據中越邊境的地理形勢,派兵嚴守鎮南關內10裏處形勢險要的關前隘,在關前隘的東西兩嶺之間修築一道長3裏、高七尺、寬4尺的土石防禦牆,在牆外挖掘一道寬4尺的壕溝,並在東西兩嶺上修築起炮台,做好了堅固的防禦。又根據敵我情況將清軍分為左、中、右三路,形成徛角之勢,以便互相呼應。同時,整頓軍紀,鼓舞士氣,做好了戰爭前的各種準備。
3月,法軍了兵分三路向鎮南關發動進攻。9日,法軍一部企圖繞道鎮關北麵,切斷後路軍的歸路。清軍早有防備,法軍敗回文淵。21日,馮子材率軍出關,夜襲法軍駐地文淵,取得較大勝利,沉重打擊了敵軍。23日,法軍為改變被動局麵,向鎮南關發動大規模進攻。馮子材親率士兵從正麵奮力抵抗敵軍,其他各新聞訊趕來,附近群眾也架入了戰鬥。馮子材身先士卒,將士們倍受激勵,各部奮勇殺敵,多次打退敵人的進攻。經過兩天的激戰,法軍傷亡慘重,潰不成軍,被迫狼狽逃回文淵。清軍取得了鎮南關戰役的巨大勝利,乘勝收複了許多失地。
清軍鎮南關大捷的取得,沉重打擊了法國侵略者,表明了中國人民抗擊法國侵略的堅強決心,鼓舞了中越兩國人民的鬥誌。它是中法戰爭中決定性的一戰,不但使東線從此轉敗為勝,而且使戰爭的整個形勢也發生了根本性的變化。