19世纪60年代初,法国侵占越南南方,并不断向北部进犯。同治十二年(1873年),法军连陷河内、海阳、宁平、南定4省。越南政府请求黑旗军领袖刘永福率部援越抗法。
刘永福(1837——1917),字渊亭,广西上思人,早年组织队伍参加天地会起义,所部以七星黑旗为军旗,故称黑旗军。因受清军压迫,退至滇越边界开山辟林,聚众耕种。
同治十二年十一月(1873年12月),刘永福应邀率部进至河内城郊,打退法军的进攻,击毙法军头目安邺,被越南政府任命为三宣副提督。

光绪八年三月(1882年4月),法军再次攻占河内。刘永福在越南人民的支持下,于九年四月大败法国侵略者,击毙法军司令李维业。越南政府任命刘永福为三宣正提督。
六月,越南国王病死,因起内讧,法军趁机扩大侵略,迫使越南签订《顺化条约》,越南正式接受法国“保护”,成为法国的殖民地。
法军大举进攻黑旗军和越军,把侵略矛头指向中国。中国朝野强烈要求抗击法国侵略,却遭到李鸿章的反对和压制。这不能不激起举国上下的愤慨,"弹劾鸿章无虚日","指为通夷,致比诸秦桧、贾似道"。以左宗棠、张之洞为代表的一部分官僚,也纷纷上书弹劾李鸿章。

九年十一月(1883 年12月),法军攻陷清军驻守的山西基地。十年二月(1884年3月)又在北宁大败清军主力。清政府被迫做抗击法国侵略者的部署,调张之洞为两广总督,并下令照常接济黑旗军,但仍授权李鸿章与法国代表福禄诺在天津进行和谈,并于是年四月十七日(5月11日)签订《中法会议简明条款》,又称《天津简明条约》、《李福协定》,规定法国“保护”越南、允许法国在中越边境通商、中国退兵等。然而,条约的墨迹未干,法军便于十年五月占领谅山,进窥广西,并从海陆两路大举进攻中国。
光绪十年闰五月二十三日(1884年7月15日),法国“远征”舰队在孤拔率领下到达福建海域。六月十五日(8月5日),法舰4艘进*台攻**湾基隆,被守军击退。

孤拔率舰队以到福建“游历”为幌子,强行驶入福建水师基地马尾港,旨在伺机摧毁福建海军和福州造船厂。福州会办海疆事务张佩纶和船政大臣何如璋等人不但不阻止法舰前进,反而举行隆重的欢迎仪式,让法舰驶入港内和福建舰队并排停泊。
福建海军11艘军舰和19艘运输船全部处在法国舰队的严密监视之下,不许移动,否则开炮。七月三日(8月23日)下午,法国舰队向福建舰队发动猛烈攻击,福建海军在毫无准备的情况下仓促应战,还没来得及起锚就被炸沉2艘、受重创4艘。仅在短短的20多分钟的战斗中福建海军军舰就被击沉7艘,其余全部被击毁,官兵死伤700多人。第二天法舰又炸毁马尾造船厂,一艘快要下水的巡洋舰也被毁坏,法军还摧毁了马泊沿岸的炮台和民房。
马尾海战的惨败,激起全国人民的极大愤慨,坚决要求严办何如璋、张佩纶,追究李鸿章,并在全国范围内掀起了反对法国侵略者的浪潮。清政府被迫在七月六日(8月26日)下诏对法宣战。

八月十三日(10月1日),孤拔率舰队攻占基隆,九月五日*锁封**淡水,被台湾军民打退。十二月(1885年1月),孤拔进攻镇海等地,被守军击退,孤拔受重伤,不久死于澎湖。
光绪十年十二月,法军在进攻浙江沿海的同时,还在中越边境发动陆路进攻。驻扎在谅山的淮系将领、广西巡抚潘鼎新所部60余营清军,未等法军到来就逃至镇南关(今友谊关)。法军乘机大举入侵。潘鼎新弃关而逃,一直逃到龙州。
光绪十一年一月九日(2月23日),法军在尼格里的指挥下占领镇南关。白族提督杨玉科力战牺牲,镇南关陷落。这时“各军多溃逃,无复队伍”,难民、逃军蔽江而下,"关内大震"。
在全国抗法声浪高涨的情况下,两广总督张之洞推荐爱国将领、年近七旬的老将冯子材,率粤军赶到广西前线抗击敌人。

光绪十一年二月十七日(1885年3月23日),尼格里兵分三路进攻关前隘。冯子材沉着应战,誓与长墙共存亡。法军猛扑长墙,“炮声震天,远闻七八十里外,山谷皆鸣,枪弹积阵前厚者至寸许”。
冯子材指挥各路合力夹攻法军,激战至次日,炮火更猛烈。法军扑至长墙,有的已爬上墙头。在这千钩一发时刻,冯子材“以帕裹首,赤足草鞋,持矛大呼跃出”,冲入敌阵。当时,“诸军将领见冯如此,俱感奋力战”。
全军同敌激烈拼杀,终于把敌人逼离长墙。当地各族人民赶来助战,把敌人重重包围。十九日(25日),冯子材发动总攻,击毙击伤法军1000多人,尼格里受重伤,法军败逃。冯子材乘胜追击,收复文渊城,进克谅山。与此同时,刘永福在临洮大败法军,取得辉煌战绩。
正当抗法前线大获全胜时,清政府却于二月二十二日(4月7日)发布停战撤军的“圣旨”。前线爱国将士得令后,皆扼腕愤言,不肯退兵,“举军拔剑斫地,恨恨连声”。

前线将士本可乘胜痛歼法国侵略者,为何鸣锣退兵,贻误战机?原来,清政府在海关总税务司赫德的劝诱下,派税务司英人金登干赴巴黎与法国密商议和条款,并谈就了妥协条件。
恰在这时,清军接连取得镇南关、谅山大捷。清政府不但没有借助镇南关、谅山大捷改变妥协条件,反而与法国缔结和约。二月十九日(4月4日),金登干遂以清政府的名义与法国签订了《中法停战条件》,其内容有:承认《中法会议简明条款》有效;双方停战,法国允将台湾封港事宜撤除,中国从越南撤兵;法国派使来华商议所订条约之细目,再由两国订立撤兵日期。
二十二日(7日)清政府发布停战命令,定于三月一日(15日)双方正式停战。这是清政府*国卖**外交的又一奇耻大辱,理所当然地遭到举国上下的抨击。全国各地纷纷通电反对议和,痛斥投降派。清政府竟然不顾全国人民的反对,不顾越南人民的痛哭挽留,强令抗法部队和黑旗军撤出战场。

四月二十七日(6月9日),李鸿章和法国公使巴德诺在天津签订《中法会订越南条约》,简称《越南条约》,又称《中法新约》、《李巴条约》。主要内容是:中国承认越南受法国的“保护”;中国同意在云南、广西两省的中越边界指定两处开埠通商;中国日后修铁路时,应与法国商办;法军退出基隆和澎湖。从此,法国侵略势力伸进我国的云南和广西。