中法战争

起因

19世紀下半葉，法蘭西第二共和國開始侵入中國傳統的屬國越南。1856年，法國遠東艦隊因越南處死傳教士炮轟土倫港（今峴港），並於1858年一度登陸占領。1858年，法軍攻占西貢。1860年法國借第二次鴉片戰爭結束借用侵華法軍進攻南圻，先後占領嘉定、定祥、邊和、永隆等省和崑崙島。1862年6月，法國和越南阮朝簽訂第一次《西貢條約》（即《柴棍條約》），將西貢一帶的地區割讓給法國。1863年，越南承認柬埔寨是法國的保護國。
1870年到1871年的普法戰爭中法國大敗，暫時推遲了法國的進度。1873年11月，法蘭西第三共和國駐西貢總督杜白蕾派安鄴率軍攻占河內以及海陽、寧平、南定等城。越南皇帝阮福時請當時在越南保勝地區活動的劉永福領導的獨立武裝「黑旗軍」勤王。12月21日，黑旗軍在河內近郊以600人配合越軍突擊十多人的法軍分隊，殺死安鄴。阮福時為達到政治平衡，一方面和法國議和，於1874年3月15日簽訂了《第二次西貢條約》，承認越南是法國的保護國；另一方面則任命劉永福為「三宣副提督」管理宣光、興化、山西三省，以黑旗軍阻止法軍北上。
1879年6月，法國駐海防領事土爾克稱：「法國必須占領北圻……因為它是一個理想的軍事基地，由於有了這個基地，一旦歐洲各強國企圖瓜分清國時，我們將是一些最先在清國腹地的人。」
1881年7月，由法國總理茹費理主導的法國國民議會通過了二百四十萬法郎的軍費用於越南。1882年3月，法國西貢殖民政府派海軍上校李威利（又譯為李維業）率軍數千於4月占領河內。1883年3月李威利一軍占領南定。阮福時再次邀請劉永福出兵，在越南黃佐炎一部的支援下，於5月19日在河內城西伏擊法軍獲得勝利，即紙橋之役殺李威利，法軍陣亡35人，清越軍陣亡50人。殘餘法軍只能死守河內。劉永福之後並升為「三宣正提督」。法國政府隨即宣布要「為她的光榮的孩子復仇」，撥給河內法軍350萬法郎。
法國馬上任命西貢法軍司令波滑（Alexandre-Eugène Bouët）繼任東京法軍統帥，並成立由海軍少將孤拔為統帥的東京艦隊。8月，波滑沿紅河進攻黑旗軍，同時孤拔率海軍進攻越南首都順化。波滑一軍損失很大，波滑本人則被遣返巴黎。但孤拔一軍卻攻入順化，阮福時正好病死，繼位的越南（安南）皇帝阮福昇於8月25日和法國簽訂《第一次順化條約》。至此越南已被法國征服，法國開始直接進攻中國。

海戰及臺澎戰場

1884年8月5日，由於雙方談判破裂，法國希望占領基隆煤礦(今八斗子清國井)和破壞馬尾造船廠逼使清廷和談，於是令東京灣艦隊司令李士卑斯率領三艘戰艦強攻基隆，正式揭開攻台戰事序幕。法軍先對基隆港東的大沙灣砲台（今大沙灣石圍）開火，砲台營官姜鴻勝督砲還擊，五發砲彈中有三發擊中法軍旗艦，但三艘法艦火力猛烈，摧毀守軍砲架，並引發一處彈藥庫爆炸，火勢延燒到緊鄰的村莊。10時許法軍派遣陸戰隊約200名由二沙灣登陸，午後再派水雷分隊徹底破壞佔領區內的砲台設施。姜鴻勝所部則接獲密令撤退，官兵傷亡60餘人。隔日法軍派遣陸戰隊攻入雞籠市街時卻中清軍福甯鎮總兵曹志忠的埋伏，敗退回艦。李士卑斯只好率領艦隊回到馬祖。
由於基隆的失敗，1884年8月22日，法國海軍部長命令中國海艦隊司令孤拔攻擊清朝南洋水師，摧毀福建沿岸海防設施。馬江海戰，孤拔乘貝亞德號率遠東艦隊突襲全殲駐福建馬尾的福建水師。時任日本「天城」艦艦長的東鄉平八郎率艦隨遠東艦隊觀察戰局；後來法軍攻打臺灣時，東鄉亦隨行觀察。
10月初，法艦轉而進攻台灣；劉銘傳10月3號抽調兵力回防淡水(滬尾)仍保留300多名軍力防守獅球嶺及基隆河但到10月4日獅球嶺被法軍攻下、10月7日至8日法軍率800名海軍陸戰隊攻向淡水，當時劉銘傳已事先抽掉兵力預防法軍來犯，並且沉船巨石，守江封港堵住淡水河口，在沙崙海岸築堡壘據守，防止法軍直接突入淡水河，避免控制台北城，且在英方的協助下於淡水河口布防水雷，清軍在淡水守將以台灣總兵章高元，漳州總兵孫開華領兵下力抗法軍進攻，法軍陸戰隊只好搶灘淡水河口，雙方往返衝殺死傷慘重，最後法不支只能撤退，台北滬尾之圍稍解法軍死傷慘重，10月13日清軍再增援鄉勇團練已增至6000多人軍力，由於法軍強攻淡水不下，準備再改由基隆方面攻向大稻埕，法軍在滬尾（今新北市淡水區）搶灘登陸時被清軍及臺灣鄉勇擊退，轉而從10月23日起對台灣實行海上封鎖，同時清軍銘字部再由卑南調軍增援，法軍則增兵至1800人攻向基隆，11月11日曹志忠欲奪回獅球嶺陣地仍被法軍擊退，11月17日暖暖之役由周玉謙團練為主，林朝棟，曹志忠支援防守，阻擋法軍連續3日的猛列進攻，使法軍無功退回，至11月18日法軍欲攻下月眉山，於是1885年1月25日法軍發動第一次月眉山之役，由曹志忠，林朝棟，張仁貴共同協防，但不敵法軍，清軍退至基隆河南岸，情勢岌岌可危。從1884年10月到一直到隔年1885年4月，法軍曾多次進軍台北卻遭受阻，一直被困於基隆，1885年初，海軍的步兵隊和從馬賽調來支援法國外籍兵團從基隆向台北進攻而不果（霧峰林家的棟軍及北部民團助劉銘傳擋下法軍），在第二次月眉山戰役中成功拿下月眉山，但仍被困於基隆河北岸，而未曾渡過基隆河，基隆之法國公墓、暖暖金山寺壕溝、碇內尖砲台，就是當年戰後所留下。

封鎖台海期間，法艦隊截擊清南洋水師5艘往援台灣的軍艦，在浙江石浦擊沉馭遠與澄慶，並追擊其餘3艦至杭州灣口，與鎮海砲台對峙駁火。3月底，由於法軍困於基隆，未能佔領台北，需要更好談判擔保品，於是出兵攻佔澎湖；孤拔於6月11日因病死於澎湖媽宮（現為澎湖縣馬公市）。

後期陸戰

1884年兩廣總督張之洞急調廣西提督馮子材指揮戰鬥。馮子材在關內選擇險要地勢，挖壕修築炮台。然後出兵夜襲法軍駐地文淵城，誘使法軍進攻。
1885年3月23日法軍第2旅900餘人從諒山出發，攻入鎮南關，遭到清軍及黑旗軍43,000人的伏擊；馮子材指揮「黑旗軍」以及「恪靖定邊軍」進攻，將法軍逼下長城，陷入伏擊圈。3月24日，法軍分三路發起反擊，66歲的馮子材及二子親身投入肉搏戰，經過兩天激戰，法軍傷亡93人，戰線崩潰；清軍乘勝追擊，3月26日攻克文淵城，3月28日攻克驅驢（Ky Lua），3月29日克諒山，3月31日克屯梅、觀音橋，4月2日克谷松。當馮子材集結四萬軍力準備進攻河內之際，清廷於4月4日和法方協議停戰；清廷乃下詔撤軍。

結局及影響

1885年3月30日，赫本哲放棄諒山的消息傳到法國，法國議會以306對149票否決「軍費追加案有先議權」議案，總理茹費理旋引咎辭職。
清朝財政方面，四川總督丁寶禎在1884年就拿不出供鮑軍的十萬兩銀，說「鮑超軍需甚重，措辦為難」而海戰失敗後清政府清楚已無法阻止法國軍艦北上大沽口，同時朝鮮又發生甲申政變，張之洞五營兵勇和物資因此不能支援台灣。於是在1885年初出現了日本和法國結盟攻擊清朝的危險「而正是由於4月和法國議和，才消除了這種危險。」
在英國調停下，清朝以李鴻章為全權代表與法國公使巴德諾（Jules Patenôtre）在天津會談，於1885年6月9日簽訂《中法新約》（即《中法會訂越南條約十款》），主要內容就是確認1884年先前法國與越南簽訂的《第二次順化條約》，其中承認了法國對越南的宗主權。和約簽訂之後，法國軍隊撤出澎湖，停止對台灣的封鎖，清朝軍隊撤出越南。
湘軍元老左宗棠對於李鴻章簽訂的條款十分不能諒解，對他作出如下批評：「對大清而言，十個法國將軍，也比不上一個李鴻章壞事」；「李鴻章誤盡蒼生，將落個千古罵名」。淮系潘鼎新等也反擊對「恪靖定邊軍」首領王德榜、台灣道道尹劉璈等左系人物攻訐。
就《中法新約》條款，有一派看法認為前約簽訂時戰局對中國不利，談判新約時李鴻章卻未善加利用後期對中國漸趨有利的戰局，堅持修約，終使中國喪失一大藩屬。然而另一看法認為新約內容尚稱合理，因為在停戰前，越南90%以上領土及主要城市（包括順化、河內、西貢）都已由法軍控制，而清軍只奪回諒山。
戰爭後，清政府進一步意識到了海防的重要性，乃加緊建立北洋艦隊，並於臺灣設省，開始大力建設。
另外，在被英國殖民的香港華人同樣採取了行動，為了支持清廷而發動大罷工，港英政府雖然以鎮壓的手段來制止，但最後仍然妥協，這也是香港華人在殖民統治下開始爭取權利的第一步。