1882年,清政府被迫签订《中俄伊犁界约》等一系列不平等条约,被割走中国东北、西北共150多万平方公里领土。1884年,西方殖民大国齐聚德国,召开瓜分非洲的柏林会议,掀起了抢占非洲土地的狂潮。次年12月,印度国民大会党在孟买成立,要求实行政治改革。
第二次鸦片战争后,法国加紧了对越南的侵略,以便占领越南后,进而侵略中国。1883年8月,法国派军队攻占了越南都城顺化,强迫越南政府签订了《顺化条约》,规定越南的一切对外交涉都由法国掌管等。接着,12月11日,法国侵略军突然进攻驻扎在越南山西的中国军队,中法战争爆发。
面对法国对越国的侵略,清政府内部虽然出现了主战和主和两派,但因为主和派掌握着实权,对外实行妥协退让的政策,这不能不使中国陷入被动挨打的局面。
法军向越南山西发动进攻后,越南边境的刘永福率领黑旗军奋力还击,但由于驻守北宁的桂军临战观望,滇军又行动迟缓,致使黑旗军孤军奋战。伤亡较大。12月16日,法军攻陷山西,黑旗军与滇军被迫退守兴化。1884年3月,法军援军到达,又扩大了侵略。12日,法军占领北宁,19日攻占太原,4月12日,又攻陷了兴化。至此,法国侵略军占领了红河三角洲的全部地区。这使得清政府非常恐慌,在法国侵略军的武力威胁下,5月11日,清政府派李鸿章与法国海军中校福禄诺在天津签订了中法《简明条约》。根据条约,中国承认越南成为法国的保护国,中国将驻守在越南的军队全部撤回边境,中越边界开放通商等。
《简明条约》的签订激起了全国人民的强烈不满,清政府迫于舆论的压力,没有立即撤回在越南的军队。1884年6月,法国侵略者强迫中国驻军撤出谅山阵地,并炮轰中国驻军阵地。清军被迫还击,击退法军,打死打伤法军近百人。法国以此为借口,要求中国军队立即撤回,并向法国赔款等。清政府在敌人的敲诈下,为避免和局破裂,同意撤军,并派曾国荃到上海与法国代表谈判。
8月5日,法国军舰又炮轰台湾基隆炮台。当地守军奋力反击,于6日大败法军,法军被迫狼狈撤退。法军进攻台湾基隆不成,转而集中力量进攻福州。其实,从7月中旬起,法国多艘军舰就已经陆续闯入了福州东南的马江港,监视港内中国海军行动,并时刻准备进攻中国海军。然而,负责指挥福建海军的张佩纶等人根据清政府不主动进攻的政策,任凭法国军舰进入港内,命令中国军舰不准先开炮,这些都注定了马尾海战的惨败。
8月中旬,上海谈判失败,清政府命令沿海各省加强防备,但是仍然要求不能主动出击。23日下午1时3刻,法军突然向福建海军发动袭击,当场击沉两艘军舰。福建海军被迫仓促应战,一部分官兵奋起还击。福建海军旗舰“扬武”号用尾炮准确击中法国侵略军旗舰“伏尔泰”号,但很快被法军鱼雷艇发射的鱼雷击沉。“福星”、“振威”等炮舰也部向敌舰放炮,奋力抵抗,重创敌舰,最后都被敌舰击沉,艇上官兵壮烈牺牲。此次海战,福建海军损失惨重,7艘军舰被击沉,其余军舰也都被击毁,将士死伤700余人。8月24日,法国军舰又炮轰了马尾船厂、马江两岸炮台以及附近的帆船、舢板等。
马尾海战的惨败,是清政府执行妥协投降政策的结果。它给了清政府以沉重打击,激起了中国人民对法国侵略者更大的愤怒及对清政府更大的不满。各地人民要求反抗法国侵略者的呼声,迫使清政府撤销了张佩纶等人在福建的职务,任命左宗棠为钦差大臣督办福建军务。同时,也迫使清政府于8月26日正式向法国宣战,命令沿海清军加强防御,严防法国海军再次入侵,命令各路陆军迅速在越南战场向南进发,对法国侵略者展开反攻,收复失地。同时,公开表示支持刘永福及其领导的黑旗军,授予刘永福为记名提督,对法军作战。从此,中法战争形势逐渐朝着有利于中国的方向发展。