Chiến tranh Pháp–Thanh

Chiến tranh Pháp–Thanh là cuộc chiến giữa Đệ tam Cộng hòa Pháp và Đế quốc Đại Thanh, diễn ra từ tháng 9 năm 1884 tới tháng 6 năm 1885. Cuộc chiến nổ ra vì Pháp muốn kiểm soát vùng đồng bằng Bắc Bộ Việt Nam và con đường nối từ Hà Nội đến tỉnh Vân Nam của Trung Quốc. Nhà Thanh ngược lại muốn ngăn cản sự hiện diện quân sự của Pháp Bắc Kỳ, vì điều này sẽ trực tiếp uy hiếp vùng biên giới phía nam của họ. Sâu xa hơn nữa, là nhà Thanh muốn nhân cơ hội này để chiếm đoạt hoặc là duy trì ảnh hưởng của mình đối với Việt Nam.
Mở màn.
Mặc dù Hiệp ước Sài Gòn 1874 cho phép tàu thuyền Pháp đi thám hiểm các dòng sông, nhưng tới những năm đầu 1880, quân Cờ đen của Lưu Vĩnh Phúc tiếp tục quấy nhiễu và cản trở các thương gia Pháp. Hệ quả là chính quyền Pháp phái một lực lượng viễn chinh nhỏ với nhiệm vụ quét sạch quân Cờ đen khỏi vùng đồng bằng sông Hồng. Quân Pháp nhanh chóng đánh chiếm thành Hà Nội và chuẩn bị tiễu trừ các lực lượng quân sự chống đối họ, bao gồm quân của triều đình Huế do Phò mã Hoàng Kế Viêm quản lĩnh và quân Cờ đen của Lưu Vĩnh Phúc. Nhà Thanh vốn luôn phản đối sự hiện diện của Pháp trên Bắc kỳ liền bắt đầu chuẩn bị chiến tranh. Lấy cớ tiễu trừ thổ phỉ, quân đội Vân Nam và Lưỡng Quảng (Quảng Đông và Quảng Tây) được điều động tiến sát về biên giới, sẵn sàng vượt biên giới tiến sang Bắc kỳ. Nhà Thanh cũng hạ lệnh cho hải đội Quảng Đông, gồm 20 thuyền tiến vào hải phận của Việt Nam để thị uy. Tới ngày 17 tháng 6 năm 1882, quân Thanh từ Vân Nam do Tạ Kính Bưu, Đường Cảnh Tùng chỉ huy vượt biên giới tràn sang Bắc Việt, đóng ở Bắc Ninh và ở Sơn Tây, có quan bố chính Quảng Tây là Từ Diên Húc đem quân sang tiếp ứng, phối hợp với các lực lượng tiền tiêu đã đồn trú tại Bắc Việt từ tháng 8 năm 1881, để hỗ trợ cho quân Nam của Hoàng Kế Viêm và quân Cờ đen của Lưu Vĩnh Phúc.
Chiến tranh.
Quân Pháp dưới sự chỉ huy của đại tá Henri Rivière chiếm thành Hà Nội, thủ phủ vùng Bắc Bộ vào ngày 25 tháng 4 năm 1882. Triều định Huế cử quan kinh lược chánh phó sứ là ông Nguyễn Chính và Bùi Ân Niên đem binh lui về Mỹ Đức để cùng với Hoàng Kế Viêm tìm cách chống giữ. Nhưng quan khâm sứ Rheinart sang thương thuyết rằng việc đánh thành Hà Nội không phải là chủ ý của nước Pháp, và xin sai quan ra giữ lấy thành trì. Triều đình Huế bèn sai nguyên Hà Ninh tổng đốc Trần Đình Túc làm Khâm sai đại thần, quan Tĩnh biên phó sứ là Nguyễn Hữu Độ làm phó khâm sai, ra Hà Nội để cùng với đại tá Henri Rivière thu xếp mọi việc. Đại tá Rivière trả thành Hà Nội cho quan nhà Nguyễn, nhưng vẫn đóng quân ở trong Hành cung. Theo yêu sách của Rivière, nhà Nguyễn phải chấp nhận quyền bảo hộ của Pháp, phải trao thành Hà Nội cho Pháp quản lý, đặt thương chánh tại Bắc kỳ và giao cho Pháp cai quản.
Triều đình Huế không chấp nhận các điều kiện khắc nghiệt đó nên đàm phán đổ vỡ. Ông Phạm Thận Duật được cử sang Thiên Tân cầu cứu với triều đình nhà Thanh. Tổng đốc Lưỡng Quảng là Trương Thụ Thanh làm mật sớ về tâu với vua nhà Thanh, đại lược nói: "nước Nam và nước Tàu tiếp giáp với nhau mà thế lực nước Nam thật là suy hèn, không có thể tự chủ được nữa, vậy ta nên mượn tiếng sang đánh giặc mà đóng giữ ở các tỉnh thượng du. Đợi khi có biến thì ta chiếm lấy những tỉnh ở về phía bắc sông Hồng", nên quân Thanh nhân cơ hội này tiến vào Bắc Việt.
Tháng 11 năm 1882, Đại sứ Pháp Bourée tại Trung Hoa tiến hành một cuộc gặp mặt với Phó vương Trực Lệ (Zhili-tức vùng Bắc Kinh) Lý Hồng Chương, trong đó hai bên tính đến khả năng nhượng vùng Lào Cai cho nhà Thanh để lập một cửa khẩu vào Vân Nam, đồng thời thiết lập một đường phân giới dọc theo sông Hồng, theo đó phần phía bắc sẽ thuộc về nhà Thanh, phần phía nam sẽ do Pháp quản lý. Lý Hồng Chương đồng ý với thỏa thuận đạt được này, và chuyển thỏa thuận về Đổng lý Nha môn nhà Thanh để phê chuẩn. Tuy nhiên chính phủ của Thủ tướng Jules Ferry không đồng ý phê chuẩn hiệp nghị này và triệu hồi Đại sứ Bourée về nước.
Tại Pháp, ngày 21 tháng 10 năm 1882, bộ trưởng Hải quân và Thuộc địa yêu cầu chính phủ Pháp tăng viện cho Sài Gòn 10 triệu franc và 6.000 binh sĩ để giải quyết vụ khủng hoảng ở Bắc Kỳ. Sau một cuộc tranh luận gay gắt trong phiên họp Hội đồng Nội các, tổng thống Pháp Jules Grévy phản đối quyết liệt và chỉ sau khi bộ trưởng Hải quân và Thuộc địa Jauréguiberry dọa từ chức, Hội đồng thỏa thuận gởi tăng viện cho Sài Gòn 700 binh sĩ do tàu Corrèze chở đến Sài Gòn. Số quân này đến Sài Gòn ngày 13 tháng 2 năm 1883 và chuyển ra Bắc Kỳ vào ngày 15 tháng 2. Tới ngày 10 tháng 11, bộ trưởng Hải quân và Thuộc địa gởi công điện khẩn tới Sài Gòn cách chức Thống đốc Nam Kỳ Le Myre de Villers với lý do ông này vượt quá quyền hạn và bị thay thế bởi Charles Thomson. Ông Thomson nhận bàn giao chức vụ thống đốc Nam Kỳ vào ngày 12 tháng 1 năm 1883.
Ngày 12 tháng 3 năm 1883 Rivière chiếm mỏ than Hòn Gai và đặt một đồn binh gồm 25 người canh giữ. Trong thời gian đó, tổng đốc Nam Định tuyển mộ hơn 10 ngàn dân phu xây dựng các công sự phòng thủ, ngăn cản quân Pháp nhận tiếp viện bằng đường biển. Sau khi nhận thêm quân tiếp viện từ Nam kỳ, đại tá Rivière để thiếu tá hải quân Berthe de Villers với 400 quân lại giữ Hà Nội, còn lại đem đi đánh Nam Định. Lực lượng Pháp đánh thành Nam Định rất hùng hậu, gồm tuần thám hạm Pluvier, pháo thuyền Fanfare, La Hache, Yalagan, Carabine, La Surprise, tàu hơi nước Hải Phòng, các tàu chuyển vận loại nhỏ Kiang Nam, Tonkin, Whampoa và 4 ghe mành, 4 đại đội thủy quân lục chiến, tổng cộng gồm chừng 800 người và một đội lính bộ binh bản địa. Đến ngày 27 tháng 3 năm 1883, quân Pháp hạ thành Nam Định với tổn thất rất nhỏ, chỉ có trung tá Carreau bị thương nặng rồi chết và 2 người nữa bị thương, trong khi phía quân Nam mất 200 người.
Trận Cầu Giấy.
Nhân lúc Rivière vắng mặt, quân Nam tổ chức tấn công Hà Nội, tại làng Gia Quất tổng Gia Thụy huyện Gia Lâm tỉnh Bắc Ninh thời Nguyễn (Pháp gọi là Trận Gia Cuc), nhưng bị de Villers đẩy lui, (địa danh này nay thuộc Ngọc Thụy quận Long Biên Hà Nội). Tình hình quân Nam trở nên nghiêm trọng, nhưng nhận được sự tiếp sức của quân Cờ đen và được quân Thanh yểm trợ, quân Nam và quân Cờ đen quay lại đánh thành Hà Nội. Quân Cờ đen tiến về đóng đại bản doanh ở phủ Hoài Đức, đồng thời Tổng đốc Bắc Ninh là Trương Quang Đản cùng với quan phó kinh lược Bùi Ân Niên đem binh về đóng ở Giốc Gạch, thuộc huyện Gia Lâm chuẩn bị sang đánh Hà Nội. Quân Cờ đen để khiêu khích quân Pháp, đốt phá các khu giáo dân, lợi dụng đêm tối dùng pháo đặt trên lưng voi bắn vào Hà Nội, rồi tới ngày 10 tháng 5, gửi chiến thư thách Rivière ra đánh.
Để ngăn chặn hướng tấn công của quân Cờ đen và quân triều đình từ Phủ Hoài, Rivière tổ chức một cuộc hành quân lớn đánh vào phủ Hoài Đức (Dịch Vọng Từ Liêm). Cuộc hành quân này có quy mô lớn, do thiếu tá Berthe des Villers làm tổng chỉ huy, gồm có:
với lực lượng tổng cộng chừng 500 người.
Cuộc hành quân bắt đầu vào lúc 4 giờ sáng ngày 19 tháng 5 năm 1883. Quân Pháp tiến về phía Cầu Giấy, là một cây cầu bắc ngang qua sông Tô Lịch chảy về hướng Bắc trước khi đổ vào Hồ Tây. Tinh thần quân Pháp rất cao, họ vừa đi vừa cười đùa và hát, vì họ cho rằng trận chiến sẽ rất dễ dàng. Đi được không bao xa khỏi Hà Nội, quân Pháp đã phát hiện bóng quân Cờ đen ẩn núp sau các lũy tre, nên Rivière hạ lệnh tăng tốc độ hành quân để chặn bắt chủ lực quân địch. Thiếu tá Berthe des Villers và đại úy Puech tiến chiếm Cầu Giấy, chia quân lục soát làng Tiên Đồng (thôn Tiền xã Dịch Vọng, nằm bên phải Cầu Giấy) rồi quay hướng sang làng Yên Khê (nằm bên trái Cầu Giấy) dày đặc tre rừng rất vững chắc, phù hợp cho việc đóng trại và phục kích của quân Cờ đen. Quân Pháp dùng trọng pháo bắn vào làng Yên Khê Thượng (Thượng Yên Quyết) và làng Trung Tường (thôn Trung xã Dịch Vọng, nằm bên trái đường Cầu Giấy ngày nay), chuẩn bị tiến quân vào. Rivière và phụ tá tham mưu de Marolles cùng với Berthe des Villers vượt lên trước đoàn quân tiến vào khu chợ cách Cầu Giấy khoảng 330 mét.
Quân Cờ đen trong làng Trung Tường bị quân của Trung úy Pelletier de Ravinières tiến đánh phải rút lui, quay sang tăng cường ổ phục kích của quân Cờ đen chặn đường rút lui của cánh quân Pháp bên sông Tô Lịch. Khi quân Pháp lọt vào ổ phục kích, quân Cờ đen tràn ra để cắt đứt hậu quân Pháp. Bị vây đánh, quân Pháp co cụm lại, nên càng dễ dàng trở thành bia cho quân Cờ đen bắn hạ. Thiếu tá Berthe des Villers bị trúng đạn thương nặng, khiến Rivière phải ra lệnh rút lui, nhưng quân Cờ đen từ các lũy tre làng dày đặc ào ra tứ phía để tấn công, quân lính Pháp có nhiều người bị giết. Rivière và Marolles vội hạ lệnh rút lui về Cầu Giấy để chống cự. Một khẩu pháo rơi vào tay quân Cờ đen sau khi toàn bộ nhóm pháo thủ bị hạ sát, nên Rivière cùng một toán quân xông ra để chiếm lại. Trong khi cùng một sĩ quan di chuyển khẩu pháo để đặt vào một địa thế ở Cầu Giấy, H. Rivière bị trúng đạn ngay giữa trán ngã quỵ xuống chết ngay.
Quân Cờ đen ào ra cắt lấy đầu H. Rivière, quân Pháp bị thua một trận đánh lớn, thiệt hại rất nhiều về nhân mạng, sĩ quan cũng như binh lính. Ngoài Rivière bị giết chết, nhiều sĩ quan khác như sĩ quan tùy tùng Clerc, sĩ quan tham mưu de Marolles bị thương, đại úy Jacquin và trung úy Heral de Brisis, đều thuộc thủy quân lục chiến bị tử trận, thiếu tá Berthe des Villers bị trọng thương, được đưa về Hà Nội nhưng cũng không qua khỏi, chừng 50 lính Pháp bị giết tại trận, hơn 70 lính bị thương. Trong thời gian sau đó, quân Nam liên tục tấn công quân Pháp ở Hà Nội, Hải Phòng và Nam Định, nhưng đều bị quân Pháp đánh lui.
Tin Rivière bị giết truyền về Paris, chính phủ Pháp của thủ tướng Jules Ferry vốn đang do dự về việc chinh phục Bắc kỳ, đổi thái độ sang chủ chiến. Nghị viện thông qua chiến phí 5 triệu rưỡi franc và đưa một đoàn quân 3000 người xuống tàu đi Viễn Đông. Thiếu tướng Bouet, nguyên là sĩ quan hải quân, ở Nam Kỳ được phái ra làm ra thống đốc quân vụ ở Bắc Kỳ, Hải quân thiếu tướng, Đô đốc Courbet, nguyên toàn quyền New Caledonia được lệnh đem một đội chiến thuyền sang tiếp ứng, Bác sĩ Harmand, nguyên là bác sĩ giải phẫu của hải quân, sứ thần Pháp ở Xiêm, được cử ra làm toàn quyền để phối hợp các hoạt động quân sự và dân sự.
Vừa đặt chân tới Hà Nội cùng 200 lính tây và 300 lính tập, tướng Bouet đã ban hành ngay tình trạng khẩn cấp ở Bắc Kỳ, đồng thời cho phép một thuộc hạ cũ Jean Dupuis là Georges Vlavianos tuyển mộ và thành lập một tiểu đoàn quân Cờ Vàng, một đội quân kỵ binh tiền sát và một đội dân quân bản địa. Bouet cũng cho xây đắp, thêm đồn bốt phòng thủ thành Hà Nội và chỉnh đốn việc phòng thủ ở các thành Hải Phòng và Nam Định.
Trận cửa Thuận An.
Cuối tháng 7 năm 1883, tại Hà Nội, toàn quyền Harmand họp với các tướng lĩnh Pháp và quyết định phải hành động gấp rút. Thời cơ đang rất thuận lợi vì chỉ hai tuần trước đó, ngày 17 tháng 7 năm 1883, vua Tự Đức băng hà, triều đình Việt Nam đang bối rối trong việc chọn người kế vị, vì người cháu được vua Tự Đức chọn lên, tức vua Dục Đức, bị quan Phụ chính đại thần Tôn Thất Thuyết lật đổ vì nghi vua Dục Đức chủ trương "thỏa hiệp" với Pháp.
Ngày 16 tháng 8 năm 1883, một hạm đội nhỏ gồm 7 tàu chiến, trong đó có hai tàu bọc thép, chở hơn một ngàn quân Pháp do Đô đốc Amédé Coubert chỉ huy tiến vào cảng Đà Nẵng. Hai ngày sau, quân Pháp dùng thuyền đi ngược lên sông Hương bắn phá pháo đài Trấn Hải của quân Nam. Quân Nam bắn lại suốt ngày hôm đó, nhưng do vũ khí quá thua kém nên đến cuối ngày các pháo lũy đều bị phá hủy, lực lượng phòng thủ bị tổn thất hết mà quân Pháp không bị thiệt hại gì, quan trấn thành là Lê Sĩ, Lê Chuẩn tử trận, Lâm Hoành, Trần Thúc Nhân nhảy xuống sông tự tử. Quân Pháp chiếm được cửa Thuận An (Huế). Dưới sức ép quân sự của Pháp, ngày 25 tháng 8, nhà Nguyễn phải chấp thuận ký hòa ước với Pháp, theo đó chấp thuận sự bảo hộ của Pháp. Tuy nhiên các quan chủ chiến của nhà Nguyễn vẫn còn ở miền Bắc, và quân Cờ đen còn rất mạnh, nên chiến sự tiếp diễn.
Trận thành Sơn Tây.
Ngày 15 tháng 8, 1.500 quân Pháp do tướng Bouet chỉ huy chia làm ba cánh mở chiến dịch tấn công. Quân Pháp dự định tấn công quân Cờ đen đóng ở phủ Hoài Đức (nằm ở vị trí sở Dịch Vọng huyện Từ Liêm phủ Hoài Đức, ngày nay là đường Nguyễn Phong Sắc quận Cầu Giấy) và làng Vệ (làng Vẽ (xã Đông Ngạc Từ Liêm)), rồi đánh về Sơn Tây. Cánh quân bên phải bị quân cờ Đen trong làng đánh lại quyết liệt và bị hệ thống chiến lũy quanh làng cản bước tiến. Đêm hôm đó quân Cờ đen bỏ phủ Hoài Đức rút về cố thủ ở đồn Phùng (quân Pháp gọi là làng Phong), xây dựng rất nhiều chiến lũy bắn vào quân Pháp. Sau ba ngày giao chiến đẫm máu, quân Pháp vẫn chưa chiếm được làng Vệ và làng Phong, mất 42 lính bị giết, phải rút về Hà Nội.
Ngày 1 tháng 9, được tin thắng trận ở Huế, quân Pháp lại tiến về Sơn Tây đánh quân Cờ đen. Lần này quân Pháp vào được làng Ba Giang (Pháp gọi là Palan và gọi trận này là trận Palan) thuộc huyện Đan Phượng (nằm tại ngã ba sông Đáy nhận nước sông Hồng), nhưng khi đó nước lũ lên rất to, đê bị vỡ, khiến Lưu Vĩnh Phúc phải tưởng rằng quân Pháp phá đê cho nước tràn vào. Lưu Vĩnh Phúc cũng nhận được lệnh của Hoàng Kế Viêm rút về củng cố phòng thủ Sơn Tây. Triều đình Huế cử Nguyễn Trọng Hợp truyền lệnh cho Hoàng Kế Viêm (đóng ở Sơn Tây) và Trương Quang Đản (đóng tại Bắc Ninh) phải về kinh, các quan lại khi đó người thì tuân lệnh, người thì nộp bỏ ấn tín, bỏ về mộ quân phối hợp với quân Thanh để chống lại quân Pháp.
Tình hình quân Cờ đen tại Sơn Tây cũng không sáng sủa hơn nhiều. Thanh triều yêu cầu quân Vân Nam và Quảng Tây phối hợp hoạt động chặt chẽ với Lưu Vĩnh Phúc. Ngân khố tỉnh Quảng Tây cũng được chỉ thị cấp cho quân Cờ đen 100.000 quan bằng bạc làm quân phí, nhưng quân Cờ đen vẫn chưa nhận được đồng nào. Quân Quảng Tây dù được lệnh tiến về Sơn Tây, chỉ tiến đến Bắc Ninh rồi dừng lại, vì các sĩ quan Quảng Tây cho rằng thành Bắc Ninh mới có tầm quan trọng chiến lược như tuyến đầu phòng thủ tỉnh Quảng Tây, còn vai trò chủ yếu của Sơn Tây là bảo vệ tuyến đường thủy đi về Vân Nam. Kết quả là tham gia phòng thủ Sơn Tây, ngoài 5.000 quân của Hoàng Kế Viêm, chỉ có khoảng 3.000 quân Cờ đen, 1.000 quân Vân Nam và chừng 500 quân Quảng Tây.
Trong khi đó, Đô đốc Coubert vẫn tiếp tục củng cố lực lượng, quân Pháp nhận thêm nhiều đơn vị quân Ả rập và quân Lê dương. Tới đầu tháng 12 năm 1883, thêm 4.000 quân Pháp đổ bộ vào Bắc kỳ, nâng tổng số quân Pháp ở Bắc kỳ lên 9.000 người. Ngày 11 tháng 12, 5.500 quân Pháp, trong đó có một đội lính bản xứ mộ tại Nam kỳ và một đại đội lính Bắc kỳ, rời Hà Nội đi đánh thành Sơn Tây. Khoảng một nửa quân Pháp đi theo đường bộ, nửa còn lại theo đường thủy đổ bộ gần Sơn Tây (huyện Phúc Thọ). Thành Sơn Tây được xây dựng theo kiểu Vauban, nằm giữa thị xã Sơn Tây. Xung quanh thành Sơn Tây quân Nam đã xây một chiến lũy cao gần 20 bộ, dày 5 bộ, xung quanh có hào nước. Phía bờ sông Cái quân Nam củng cố đê bối rất kiên cố, biến nó thành một chiến lũy mang tên Phù Sa (nay thuộc phường Viên Sơn thị xã Sơn Tây) vì đoán quân Pháp từ đường sông sẽ đổ bộ vào đây.
Ngày 14 tháng 12, quân Pháp theo đường sông đánh vào bờ đê sông Hồng. Có ưu thế cả về quân số và hỏa lực, quân Pháp tấn công dữ dội và tới chiều đã chiếm được đê bối. Tới tối, quân Cờ đen mở một cuộc phản kích để chiếm lại đê, nhưng một phần nhờ trời sáng trăng, quân Pháp đẩy lùi cuộc tấn công đó. Trong suốt ngày hôm sau, quân Pháp củng cố các vị trí chiếm được, rồi chuyển pháo lên bắn vào thành từ sáng đến tối ngày 16, quân Cờ đen đánh lại rất quyết liệt. Trời sẩm tối, quân Pháp mở cuộc tiến công chiếm chiến lũy đối diện bờ đê thì phát hiện quân Cờ đen đã rút vào thành. Đêm đó quân Nam và quân Thanh rút chạy, quân Cờ đen cũng phải rút lui theo lên thành Hưng Hóa thuộc Hưng Hóa ở mạn ngược sông Hồng. Quân Pháp mất 83 người bị giết và 380 người bị thương. Về phía quân Cờ đen và quân Nam mất chừng một nghìn người. Đến thế kỷ 20, khi làm thủy lợi ở vùng này (trạm bơm Phù Sa (Sơn Tây)), người ta vẫn còn thu thập được hài cốt hàng trăm quân (Việt Nam và Trung Quốc) chết trận.
Trong trận này, lần đầu tiên quân chính quy nhà Thanh trương kỳ hiệu đối đầu với quân Pháp. Tin thất trận truyền về Trung Quốc thoạt tiên làm nhà Thanh hoảng hốt, vì tưởng Lưu Vĩnh Phúc chết trận. Chỉ vài ngày sau khi thành Sơn Tây thất thủ, tuần phủ Quảng Tây Trương Thụ Thanh dẫn một đoàn quân lớn tiến vào Lạng Sơn rồi cho củng cố thành Bắc Ninh. Khắp miền Bắc Việt khi đó đâu đâu cũng có quân Thanh và quân Việt đóng. Tháng 1 năm 1884, 12.000 quân Thanh do Sầm Dục Anh chỉ huy từ Vân Nam tiến vào Lào Cai, rồi tiến vào Hưng Hóa hội binh với Lưu Vĩnh Phúc. Quân Cờ đen được tăng cường lực lượng, lên đến 3000 người trở lại. Tổng số quân Thanh ở Bắc Việt khi đó lên tới chừng 50.000 người, kể cả quân Cờ đen, đóng thành một vòng cung từ Hưng Hóa, Thái Nguyên đến Bắc Ninh.
Trận thành Bắc Ninh.
Trong khoảng thời gian 3 tháng sau trận Sơn Tây, quân Pháp được tăng cường lên 16.000 người, trong đó khoảng một phần tư là lính tập, và 10 đội pháo thủ. Tướng Millot được cử lên thay Đô đốc Courbet vào tháng 2 năm 1884. Quân Pháp định đánh thành Hưng Hóa trước, nhưng do đường sông cạn nước, pháo thuyền và thuyền tiếp tế không lên được, nên quân Pháp phải chuyển hướng sang chuẩn bị tấn công Bắc Ninh. Quân Thanh cho rằng quân Pháp sẽ theo con đường cái quan đánh vào Bắc Ninh, nên tổ chức rất nhiều vị trí phòng thủ dọc theo hướng đó. Quân Pháp chia làm hai cánh, cánh thứ nhất do thiếu tướng Brière de l'Isle đem quân qua sông Hồng, rồi theo sông Đuống (sông Thiên Đức) đi về phía đông. Cánh quân của thiếu tướng De Négrier ở Hải Dương, đi tàu đến Phả Lại lên bộ, sau khi hội quân với thiếu tướng Brière de l'Isle, cả thủy bộ theo sông Cầu (sông Nguyệt Đức) tiến đánh Bắc Ninh.
Quân Cờ đen đến Bắc Ninh một tuần trước đó đã tổ chức phòng thủ trên các ngọn đồi phía ngoài thành Bắc Ninh, nhưng sự chuẩn bị của quân Thanh nhìn chung rất sơ sài. Pháo thủ quân Thanh không biết sử dụng hiệu quả pháo binh, dù quân Thanh được trang bị khá đầy đủ, quân Thanh không bố trí trên các cao điểm xung quanh thành phố. Thêm vào đó quân Thanh cướp phá, nhũng nhiễu dân chúng, cưỡng bức đàn bà con gái nên dân chúng địa phương có thái độ rất thù nghịch với quân Trung Quốc.
Quân Pháp bắt đầu tấn công từ ngày 11 tháng 2 (âm lịch) và nhanh chóng chiếm đóng các điểm cao nhìn vào thành phố. Khi Đáp Cầu thất thủ, quân Quảng Tây thấy mất đường về Lạng Sơn, hoảng hốt bỏ chạy toán loạn về Thái Nguyên, quân Cờ đen lại rút chạy về Hưng Hóa. Quân Quảng Tây trong lúc hoảng loạn bỏ lại 10 khẩu pháo Krupp và 200.000 dollar bằng bạc, mang vác theo đàn bà con gái và của cải cướp bóc được, bị dân địa phương truy đuổi. Tối ngày 6 tháng 2 (âm lịch), quân Pháp vào được thành Bắc Ninh. Trận Bắc Ninh là trận thua chiến lược của quân Thanh, nên do thất bại nhục nhã này mà hai viên chỉ huy của quân Thanh bị chặt đầu, Hsu Yen-hsu (Từ Diên Húc) bị bắt về Bắc Kinh xử tội và chết trong ngục. Quân Pháp trận này chỉ mất 8 người chết và 40 người bị thương. Thiếu tướng Brière de l'Isle thừa thắng đem quân lên đánh Yên Thế, rồi một tuần sau đánh hạ thành Thái Nguyên.
Trận thành Hưng Hóa.
Thiếu tướng Brière de l'Isle cùng lữ đoàn thứ nhất theo con đường Sơn Tây lên Hưng Hóa, rồi dàn trận ở bên này sông Đà. Hai bên đánh nhau từ sáng ngày 15 tháng 3 (âm lịch), đến 2 giờ chiều thì quân Pháp sang sông ở chỗ gần huyện Bất Bạt. Chín giờ sáng ngày 16 tháng 3 (âm lịch), thiếu tướng De Négrier đem lữ đoàn thứ nhì tiếp đến, cả hai lữ đoàn cùng hợp lực tiến lên đánh. Chỉ chừng sau một giờ, quân Cờ đen và quân Thanh thấy không chống cự nổi, đốt hết phố xá, rồi bỏ chạy lên mạn ngược. Hoàng Kế Viêm kéo quân lên mạn núi, rồi đi đường thượng đạo rút về Kinh. Trưa ngày 12 tháng 4 (tức 17 tháng 3 âm lịch), quân Pháp vào thành Hưng Hóa, rối thiếu tá Coronnat đem một toán quân lên đánh phá đồn Vàng.
Quân Pháp đánh chiếm thành Hưng Hóa và Tuyên Quang rồi ký Hòa ước Patrenôtre với triều đình Huế. Theo Hòa ước này, Triều đình Huế công nhận quyền Bảo hộ của Pháp. Phía Pháp cũng buộc Triều đình Huế từ bỏ thần phục nhà Thanh bằng cách giao nộp biểu tượng quyền lực của nhà Thanh là chiếc ấn bạc nặng gần 6 kg khắc hình lạc đà mà nhà Thanh dùng để phong vương cho vua Gia Long. Triều đình Huế không chấp nhận, kết quả là hai bên thỏa hiệp nấu chảy chiếc ấn đi để phá hủy nó.
Trận Bắc Lệ.
Tại Thiên Tân, trong các ngày 11 tháng 5 và ngày 9 tháng 6 năm 1884, nhà Thanh ký các thỏa thuận với Pháp chấp thuận Hòa ước Huế. Theo Hiệp ước này, quân Thanh sẽ rút khỏi Bắc Việt và bàn giao lại địa bàn này cho quân Pháp. Tướng Pháp Millot phái một cánh quân dưới sự chỉ huy của Thiếu tá Dugenne gồm 800 binh lính và khoảng ngần ấy dân phu vận đồ lên tiếp nhận Lạng Sơn. Ngày 19 tháng 6 năm 1884, quân Pháp đến làng Bắc Lệ, chỉ cách Lạng Sơn gần 30 km, thì phải dừng lại do mưa lũ. Ngày 23 tháng 6, khi quân Pháp tiếp tục tiến lên, họ bị quân Thanh mai phục ở hai bên đường bắn chặn lại làm vài người bị thương. Chỉ huy quân Thanh tại Lạng Sơn thông báo cho phía Pháp biết họ chưa có lệnh rút quân, dù rằng thời hạn 20 ngày để hoàn tất việc rút quân theo Hiệp định đã hết, và yêu cầu phía Pháp điện về Bắc Kinh để thúc giục chỉ thị giúp họ. Chỉ huy Pháp từ chối và đòi quân Thanh phải rút khỏi các vị trí trong vòng một giờ. Khi thời hạn hết, quân Pháp tiến lên liền bị quân Thanh mai phục sẵn, vũ trang bằng súng trường Remington, bắn chặn lại quyết liệt. Quân Pháp không tiến lên được, phải rút lui. Trận này quân Pháp mất 22 người chết và 60 người bị thương. Cuộc chiến tranh không tuyên bố giữa Pháp và nhà Thanh bùng nổ.
Các sĩ quan hải quân và lục quân Pháp tại chiến trường muốn đánh thẳng vào Bắc Kinh, nhưng Thủ tướng Pháp Jules Ferry chỉ chấp thuận tiến hành các hoạt động quân sự tại Đông Dương và vùng Biển Đông, vì ông lo ngại một cuộc tấn công vào Bắc Kinh sẽ chọc giận các cường quốc Âu châu khác, đặc biệt là Anh quốc và Nga. Hải quân Pháp dưới sự chỉ huy của Đô đốc Amédée Courbet phong tỏa các cảng biên Cơ Long và Đạm Thủy của Đài Loan và tiến hành đổ bộ đánh các lực lượng quân Thanh trên đảo. Trong số những người tham gia chiến dịch có cả đại úy công binh Joseph Joffre, thống chế tương lai của nước Pháp.
Trận Phúc Châu.
Ngày 23 tháng 8 năm 1884, trong trận Phúc Châu, hải quân Pháp gồm 7 tàu chiến và hai tàu phóng lôi nhỏ loại 30 tấn, với hỏa lực vượt trội tấn công hạm đội Thanh bỏ neo tại cảng, (điều trớ trêu là hạm đội này được ông Prosper Giquel, một công dân Pháp xây dựng). Hạm đội Thanh có 9 tàu chiến, bao gồm cả tàu vận tải vũ trang và pháo hạm, chia làm hai cụm bỏ neo tại bờ tây bắc và tây nam của khúc quanh sông Mân, ngoài ra còn có một số ghe vũ trang, ca nô phóng lôi và 2 tàu vận tải nối liền hai cụm. Trận đánh diễn ra không quá 30 phút, quân Pháp tiêu diệt hoàn toàn hạm đội Thanh. Ngày hôm sau, thuyền chiến Pháp pháo kích và phá hủy công xưởng hải quân Thanh. Tới ngày 25 tháng 8, hạm đội Pháp hướng ra biển, trên đường đi họ bắn phá và dễ dàng tiêu diệt tất cả các pháo lũy của nhà Thanh bố trí dọc theo bờ sông, vì tất cả các pháo lũy này đều hướng ra phía biển. Kể từ mồng 1 tháng 10 năm 1884 đến tháng 6 năm 1885, quân Pháp chiếm đóng Cơ Long, và từ ngày 29 tháng 3 năm 1885 chiếm luôn Bành Hồ.
Tuy nhiên tại Bắc kỳ, quân Pháp không triển khai chiến dịch được vì mùa mưa đến. Điều này giúp cho quân Thanh tiến đến tận vùng châu thổ sông Hồng. Trong quá trình chiến dịch, quân Thanh vây hãm thành Tuyên Quang, được bảo vệ bởi một tiểu đoàn quân Lê dương Pháp. Trận này cho tới giờ vẫn được ca tụng trong khúc quân hành của quân đoàn Lê dương.
Trận Thạch Phổ.
Trận giao chiến xảy ra khi một phần của hạm đội Nam Dương nhà Thanh xuất phát từ Thượng Hải từ tháng 12, định phá vòng phong tỏa của hải quân Pháp tại Đài Loan. Lực lượng Hải quân nhà Thanh gồm 3 tàu tuần dương hạm Nam Sâm (南琛), Nam Thụy (南瑞) và Khai Tế (開濟), 1 tàu khu trục Ngự Viễn (馭遠) và 1 thuyền buồm loại nhỏ Trừng Khánh (澄慶), đặt dưới sự chỉ huy của Đề đốc Ngô An Khang. Tới mãi tận giữa tháng 2 năm 1885, hạm đội quân Thanh mới đến vịnh Thạch Phổ và chạm trán hạm đội Pháp, nhưng vì hạm đội Pháp có ưu thế vượt trội về hỏa lực nên quân Thanh quyết định nhanh chóng tháo lui. Chiếc khu trục hạm Ngự Viễn và thuyền buồm Trừng Khánh vì chạy chậm hơn nên bị rớt lại, phải quay lại bỏ neo tại cảng Thạch Phổ. Trong đêm ngày 14, rạng sáng ngày 15 tháng 2 năm 1885, quân Pháp sử dụng 2 tàu phóng lôi để tấn công quân Thanh. Khu trục hạm Ngự Viễn bị đánh chìm, còn chiếc Trừng Khánh có lẽ bị thủy thủ đoàn tự đánh đắm. Trận này thường bị nhầm với trận Phúc Châu, vì trong trận đó quân Pháp cũng dùng ngư lôi để đánh chìm 2 tàu chiến của quân Thanh, trong đó có cả kỳ hạm của quân Thanh. Trận này còn được gọi là trận "Shei-poo".
Ba tuần dương hạm còn lại của Nam Dương hạm đội chạy về đến Ninh Ba, cùng với 2 tàu hộ vệ của Phúc Kiến bị hải quân Pháp phong tỏa trong cảng và không có bất kỳ một đóng góp quân sự gì cho tới khi chiến tranh kết thúc. Lực lượng Bắc Dương hạm đội cũng án binh bất động dù sở hữu một số tàu chiến hiện đại và có hỏa lực mạnh đủ để đương đầu với tàu chiến Pháp, nên dù hải quân Pháp bị dàn trải mỏng vẫn có thể phong tỏa bờ biển miền nam và tây nam Trung Quốc. Tuy bị nhiều thất bại, nhưng với cuộc chiến ở vào thế giằng co, nghịch lý là uy tín hải quân Thanh trên trường quốc tế dường như lại tăng lên một chút, vì đây là lần đầu tiên Trung Quốc đối đầu với một siêu cường châu Âu và cuộc chiến ở vào thế bất phân thắng bại.
Trận Ải Nam Quan và Lạng Sơn.
Một đạo quân viễn chinh Pháp gồm 2 lữ đoàn hành quân lên miền bắc xứ Bắc kỳ và chiếm Lạng Sơn vào tháng 2 năm 1885. Một lữ đoàn sau đó tiến về giải vây Tuyên Quang, nên tại Lạng Sơn chỉ còn lại một lữ đoàn không có lực lượng yểm trợ. Chỉ huy đơn vị này vì muốn tiêu hao sức mạnh tấn công của quân Thanh nên tổ chức tấn công quân Thanh dọc biên giới và bị đánh bại tại trận Trấn Nam Quan. Quân Pháp rút lui về Lạng Sơn và đánh bại cuộc tấn công của quân Thanh trong trận Kỳ Lừa. Tuy nhiên trong khi giao chiến, viên chỉ huy Pháp bị thương, và người thay thế ông ta, có lẽ bị hoảng hốt, vội vã hạ lệnh bỏ Lạng Sơn vào ngày 28 tháng 3. Lữ đoàn rút chạy hỗn loạn về vùng châu thổ sông Hồng, mất hết các chiến quả thu được trong chiến dịch năm 1885, khiến cho chỉ huy quân viễn chinh Pháp, Henri Briere de l'Isle, tưởng là tình hình vùng trung châu đã trở nên hết sức nguy kich. Ông ta đánh điện báo về Paris, và hậu quả là chính phủ của thủ tướng Jules Ferry sụp đổ.
Vài ngày sau, Briere de l'Isle nhận ra là tình hình không đến nỗi xấu như ông ta tưởng, tuy nhiên Nội các mới lên thay ở Pháp đã quyết định chấm dứt chiến tranh.
Trận thua này, mà người Pháp gọi là "Sự kiện Bắc kỳ", là một scandal chính trị lớn cho những người ủng hộ chủ nghĩa việc bành trướng thuộc địa. Mãi cho đến cuối thập niên 1890 họ mới giành lại được sự tín nhiệm trên chính trường.
Hệ quả.
Mặc dù phải rút khỏi Lạng Sơn, nhìn tổng thể thì quân Pháp vẫn chiếm ưu thế, cộng với các chiến thắng trên biển, khiến cho Lý Hồng Chương phải ký một hiệp ước gây nhiều tranh cãi ngày 6 tháng 9 năm 1885. Theo hiệp ước này, nhà Thanh chấp nhận Hòa ước Huế và từ bỏ quyền bá chủ trên lãnh thổ Việt Nam. Không lâu sau An-nam (Trung kỳ và Bắc kỳ bị sáp nhập vào Nam kỳ thuộc Pháp). Ảnh hưởng đáng kể nhất của cuộc chiến với Pháp là nó hạ bệ chính phủ lâu năm của Ferry.
Bản Hiệp ước này gây nhiều tranh cãi đến mức Lý Hồng Chương và chính quyền nhà Thanh phải chịu nhiều chỉ trích nặng nề, đồng thời tạo ra một làn sóng ái quốc khắp Trung Hoa. Cuộc chiến tranh là một bước quan trọng trong quá trình sụp đổ của nhà Thanh, do bị mất uy tín và do sự hủy diệt Nam dương Hạm đội. Nó cũng chỉ ra những yếu kém trong hệ thống quân sự cuối đời nhà Thanh, khi mà các đơn vị địa phương quân, cũng như bắc quân (gồm cả hải-lục quân) từ chối tham chiến. Tuy không bị thất bại trên chiến trường, nhưng các mục tiêu chính trị mà nhà Thanh đặt ra đều không thực hiện được, như ngăn chặn sự hiện diện quân sự của Pháp ở Bắc Việt, nhà Thanh phải chấp nhận mất nước chư hầu Việt Nam và chấp nhận tất cả các hòa ước mà Pháp đã ký với nhà Nguyễn. Về mặt quân sự, tuy các tổn thất nhân mạng có thể chấp nhận được, thì các thiệt hại vật chất rất to lớn và khó bù đắp. Hạm đội Phúc Kiến (tức Nam Dương hạm đội) bị hủy diệt, cảng Phúc Châu bị phá hủy, tổn thất về khí tài, chi phí quân sự, thiệt hại kinh tế của nhà Thanh lên đến 100 triệu lạng bạc, đồng thời mắc nợ thêm 20 triệu lạng bạc nữa.
Hệ quả chính trị là phái cải cách trong chính phủ nhà Thanh hoàn toàn mất uy tín và bị gán trách nhiệm cho thất bại. "Phong trào Tự cường" thực hiện được hai mươi năm nay bị phá sản. Việc mất Việt Nam cũng mở đường cho Đế quốc Anh đặt yêu sách lên nhà Thanh đòi tách Miến Điện khỏi vùng ảnh hưởng của Trung Quốc vào năm 1885 (dù vẫn chấp thuận để Miến Điện tiếp tục triều cống), và Nhật Bản nhân cơ hội bắt đầu tỏ ý nhòm ngó Triều Tiên.