Hưng Hóa was captured by the French a month to the day after the capture of Bắc Ninh. General Charles-Théodore Millot, the commander-in-chief of the Tonkin Expeditionary Corps, followed up his victory in the Bắc Ninh Campaign by mopping up scattered Chinese garrisons left behind by the Guangxi Army after the rout at Bắc Ninh by mounting a major campaign against Liu Yongfu's Black Flag Army and Prince Hoàng Kế Viêm's Annamese forces, which had retreated to Hưng Hóa after their defeat in the Sơn Tây Campaign (December 1883). In April 1884 Millot advanced on Hưng Hóa with both brigades of the Tonkin Expeditionary Corps.
The base for the Hưng Hóa campaign was Sơn Tây. General Louis Brière de l'Isle's 1st Brigade set out from Hanoi on 5 April, after parading through the town in an imposing display of strength. General François de Négrier's 2nd Brigade, which was deployed around Bắc Ninh and Phu Liang Giang, set off for Hanoi on 4 April. On 5 April the 2nd Brigade spent the entire day crossing the Red River, and on the next day, it paraded through Hanoi on its way west to Sơn Tây. Marching overland from Hanoi past the battlefields of 1883, the two brigades reached Sơn Tây on 6–7 April, respectively. On 8 April both brigades left Sơn Tây, marching toward the Black River, so as to approach Hưng Hóa from the south and the southeast, respectively. Millot sent Colonel Belin's marine infantry marching regiment on ahead to seize the village of Tai Bắc on the Black River and fortify it as a base for the river crossing and subsequent march on Hưng Hóa. On 10 April, after a day spent scouting ahead, Brière de l'Isle's 1st Brigade reached the Black River. On 11 April, the brigade set off southwards at dawn on a wide outflanking march to threaten Liu Yongfu's line of retreat. The brigade crossed the Black River and marched northwest along the mountain path, approaching Hưng Hóa from the south.
Meanwhile, de Négrier's 2nd Brigade painfully crossed the Black River at Vu Chu on 10 April. Millot's staff had assembled fifteen junks and two tugs for this operation, but de Négrier had nearly 4,000 men to get across and a large artillery train. Five French soldiers and a dozen coolies, [clarification needed] too impatient to wait their turn to cross the river by junk, tried to swim across and were carried away by the strong current and drowned. These were the only French casualties of the Hưng Hóa operation. At 6 a.m. on 11 April the 2nd Brigade left the Black River and marched due west towards Hưng Hóa. At 9 a.m. the brigade's advance guard occupied a position on a wooded height overlooking the Red River above the village of Trung Hà, whose plateau, thickly covered in tall umbrella pines, offered an ideal observation post and firing platform for the French artillery. Hưng Hóa on the southern bank of the Red River, was clearly visible five kilometres to the west. By 10:00, Millot's heavy artillery and the bulk of the 2nd Brigade's infantry were assembled on the Trung Hà plateau. The Black Flags remained inside Hưng Hóa, and made no attempt to dispute the French advance. Millot had hoped that the gunboats of the Tonkin Flotilla could support the attack, but Hache and Yatagan drew too much water to sail beyond the confluence of the Red River and the Clear River. Only Trombe and Éclair reached the junction of the Red and Black Rivers to take part in the upcoming battle.
The Black Flags had thrown up an impressive series of fortifications around Hưng Hóa, but Millot made no attempt to attack the town's formidable defences. Having pinned the Black Flags frontally with General de Négrier's 2nd Brigade, he subjected Hưng Hóa to a ferocious artillery bombardment from Trung Hà with two 80-millimetre and one 90-millimetre artillery batteries. The bombardment began at 10 a.m. on 11 April and lasted for several hours, setting many buildings inside Hưng Hóa alight and inflicting heavy casualties on the Black Flag defenders. The French did not suffer a single battle casualty. The soldiers of the 2nd Brigade spent the day in complete idleness, enjoying the warm spring sunshine and watching the smoke rise silently from Hưng Hóa as the French artillery methodically reduced the town to ruins. While Millot's artillery bombarded Hưng Hóa, General Louis Brière de l'Isle's 1st Brigade successfully executed its flank march to the south of Hưng Hóa. On 11 April, seeing Brière de l'Isle's Turcos and marine infantry emerging behind their flank at Xuân Đồng, the Black Flags evacuated Hưng Hóa before they were trapped inside. They set alight the remaining buildings before they left, and on the following morning the French found the town completely abandoned.
On 13 April 1884, Millot issued the following order of the day to mark the capture of Hưng Hóa:
Un mois jour pour jour après la prise de Bac-Ninh, vous entrez dans la citadelle de Hong-Hoa. C'est une nouvelle et brillante victoire, dont la République vous remercie. Si j'ai été assez heureux pour épargner votre sang, vous m’avez en revanche prodigué votre énergie dans les circonstances fréquentes où j'ai dû y faire appel. Je suis heureux de vous le dire. Si vous avez agrandi notre possession d'une belle province, vous avez prouvé de nouveau que la France avait de vigoureux soldats animés du plus pur patriotisme.
TRANSLATION: One month to the day after the capture of Bắc Ninh you have entered the citadel of Hong-Hoa. This is a new and splendid victory for which the Republic thanks you. If I have been fortunate enough to have spared your blood, you have repaid me by giving lavishly of your energy on the many occasions I have had to call upon it. I am happy to say that you have not only added a fair province to our possessions but have once again shown that France has vigorous soldiers animated by the purest kind of patriotism.
Given its strategic importance, Millot decided to occupy Hưng Hóa. He appointed Lieutenant-Colonel Jacques Duchesne commandant supérieur of Hưng Hóa, and the town was garrisonned with the 1st and 2nd Legion Battalions (Lieutenant-Colonel Donnier and chef de bataillon Hutin). The Black Flag Army retreated westwards up the Red River to Thanh Quan, while Prince Hoàng Kế Viêm's Vietnamese forces fell back southwards from Dong Yan towards the Annam-Tonkin border, making for the sanctuary of the province of Thành Hóa, where the French had not yet installed any garrisons. Millot dispatched Lieutenant-Colonel Letellier with two Turco battalions and supporting cavalry to harry Liu Yongfu's retreat, and sent General Brière de l'Isle with the rest of the 1st Brigade in pursuit of Prince Hoang.
During the last fortnight of April Brière de l'Isle pursued Prince Hoang's forces through the southeast provinces of Tonkin, through towns and villages that had never before seen a French soldier. After entering Đồng Yan and destroying its citadel he faced about and marched down to the Black River, crossed the river at Gran Co, then left the mountains and led his troops down the Day River to Ninh Bình, accepting the submission of small prefectures. Millot sent the gunboats Carabine to Phú Lý, and the Mousqueton to Ninh Bình to further intimidate inhabitants of the southeast provinces as well as to hunt down stragglers from Prince Hoang's army. In early May, Brière de l'Isle cornered Prince Hoang in Phú Ngô, several kilometres northwest of Ninh Bình, but the French government forbade him to attack the Vietnamese defences, having just received news that China was ready to treat with France over the future of Tonkin. Further French successes in the spring of 1884, including the capture of Thái Nguyên, had convinced the Empress Dowager Cixi that China should come to terms, and an accord was reached between France and China in May. The negotiations took place in Tientsin. Li Hongzhang, the leader of the Chinese moderates, represented China; and Captain François-Ernest Fournier, commander of the French cruiser Volta, represented France. The Tientsin Accord, concluded on 11 May 1884, provided for a Chinese troop withdrawal from Tonkin in return for a comprehensive treaty that would settle details of trade and commerce between France and China and provide for the demarcation of its disputed border with Vietnam.
It was hoped the Tientsin Accord would resolve the confrontation between France and China in Tonkin, but a clash between French and Chinese troops at Bắc Lè on 23 June 1884 plunged both countries into a fresh crisis. China's refusal to pay an indemnity for the Bắc Lệ ambush led two months later to the outbreak of the Sino-French War (August 1884 – April 1885).