法国派巴德诺与曾国荃进行谈判的同时,继续制造事端,再次挑起战争。从1884年5月《简明条约》签订前后法军攻击基隆起,到1884年8月马尾海战结束为止,为中法战争第二阶段,主要在中国东南沿海进行,越南北部陆上战争也在继续。
法国将它在中国和越南的舰队合成远东舰队,任命孤拔为统帅,乘机分别开进福州和基隆,一方面胁迫中国接受法国条件,一方面准备随时发动攻击,占领这些口岸。8月5日,法舰轰击基隆,强行登陆,中国军队在督办台湾事务大臣刘铭传统率下顽强抵抗,使法军不得不退回海上待机再举。随后,法国议会授权政府使用各种必要方法使中国屈服,法国政府拟定新条件向中国勒索,要求赔款八千万法郎,十年付清。清政府没有接受。中法外交关系正式破裂。23日,法国以先期驶入福州马江以内的优势兵舰向中国船舰猛烈攻击,中国水师仓卒应战,顷刻间,战舰十一艘或沉或伤,官兵殉难者近八百人。法舰又炮轰马尾船厂(福州船政局),将其击毁,并连日对马尾至海口间的岸防设施大肆破坏后驶出闽江口,集结于马祖澳。
福建海军马江惨败,中国朝野震惊。在主战舆论的压力下,清政府被迫于8月26日正式对法宣战。鉴于海上难以与敌争锋,在"牵敌以战越为上策"的思想指导下,确立了东南沿海防御、北圻陆路反攻的战略方针。法军则企图东攻台北,西取谅山,据地为质,勒索赔款。10月初,法国远东舰队主力扑向台湾北部的基隆、沪尾(今淡水),守将刘铭传撤出基隆之兵,使法军轻易占领基隆;但进犯沪尾的法军受挫,败回海上。此后台湾战事呈胶着状态,法国的战略企图未能全部实现 (见基隆沪尾之战)。1885年1月,为打破法舰对台湾海峡的封锁,南洋海军派出"开济"等5舰援台,孤拔亲率7舰进行拦击。2月底3月初,法舰为追歼中国援台舰只,侵入镇海(今属宁波)海面,浙江提督欧阳利见督率守军利用预设海防工事顽强抗击,击退入侵之敌,取得镇海之战的胜利。
越南北圻战场方面,东线清军再次出关,一度克郎甲及其以北地区,旋即遭到法军反攻,连战失利,于1885年2月下旬全部退入广西境内。再度入越的西线清军在云贵总督岑毓英的指挥下,发起宣光之战,1884年12月~1885年3月,以主力围攻宣光,顿兵坚城之下,未能破城,法军援兵大至,不得已撤围休整。 3月23日,滇军和黑旗军于临洮附近大败法军,西线局势才有起色。与此同时,东线清军在帮办广西关外军务老将冯子材的正确指挥下,依托镇南关(今广西友谊关)内关前隘附近有利地形和野战防御工事,于3月23~24日取得震惊中外的镇南关大捷,扭转了战局。之后,东线清军乘胜克复谅山,并向南挺进,前锋进逼郎甲、船头(今陆岸)一带。
战争结局与中法议和中法战争中,双方逐次增加兵力,法军总兵力最多时约2万余人,武器装备先进,特别在水面舰船方面居明显优势;清军参战兵力则达十余万人,但主要以陆军为主,武器窳劣,冷兵器仍占相当比重。中国军队取得了数次作战的胜利,特别是镇南关大捷,沉重打击了法国侵略者的嚣张气焰,发动此次战争的茹费理内阁被迫于3月31日辞职。然清政府未能充分利用当时的有利条件,发展大好形势,反而采纳李鸿章等人"乘胜即收"的主张,于4月4日与法国签订《停战协定》,随即强令前敌将领限期停战撤兵。6月9日,李鸿章与法国公使巴德诺于天津签订屈辱的《中法新约》(即《中法会订越南条约十款》)。清政府承认了法国与越南订立的条约,放弃了对越南的宗主权。
至此,中国永远失去了这个曾经的属国。