光緒九年(1883年),法軍占領越北南定省,企圖進犯廣西。劉永福率兵三千在河內城西紙橋一帶同法軍激戰,黑旗軍大勝,斃法軍司令李維業以下數百人。越南國王封劉永福一等義勇男爵,任三宣提督。同治十年,法國侵略軍五千餘人大舉進攻越南,占領紅河三角洲,後又進攻台灣基隆港。清廷被迫向法國宣戰,授予劉永福記名提督的官銜。劉永福率黑旗軍同清軍聯合向法軍進攻,包圍宣光,至次年三月伏擊法國援軍,接著又在臨洮大敗法軍,收復廣威。與此同時,老將馮子材也在鎮南關(今友誼關)重創法軍,從根本上扭轉了戰爭形勢,迫使挑起戰爭的法國費理內閣倒台。就在中國軍隊打了勝仗時,清廷卻下令停戰,同法國簽訂條約,承認越南為法國的保護國。十一年冬,劉永福率黑旗軍將士3000人回國,清廷下令裁減,只剩下1200人,次年又逐漸裁減至300人。
同治二十年,甲午戰爭爆發。劉永福奉命率黑旗軍兩個營赴台灣,幫辦台灣防務。二十一年,清廷同日本簽訂喪權辱國的《馬關條約》,割讓台灣。五月,日軍進攻台北,署理巡撫唐景崧逃回大陸。劉永福率黑旗軍留在台灣領導抗日。他駐守台南,與台灣抗日義勇軍合作,在新竹、苗栗、彰化、嘉義等地,重創日軍。他在台灣同日軍血戰近五個月,拒絕日軍勸降。但因清廷斷絕援台,義軍逐步退至台南,劉永福的部下大都戰死。九月,台南失陷。劉永福潛回大陸,從璋州到廣州,一路上受到當地官民的熱情迎送。
同治二十八年,劉永福任廣東賜石鎮總兵。辛亥革命後,曾被推為廣東民團總長。不久告老還鄉。1915年,日本向袁世凱提出滅亡中國的二十一條,將近 80歲的劉永福義憤填膺,要求重上戰場。 1917 年1月,病卒。