Trận Cao Bằng (1677)
Chiến dịch Cao Bằng 1677

Nhận thấy mặc dù chúa Mạc đã suy yếu, nhưng vẫn còn rất được lòng dân, đồng thời được hậu thuẫn từ nhà Thanh, nên vẫn chưa thể bình định được đất Cao Bằng, chúa Trịnh bèn thay đổi sách lược, tích cực cài cắm thám tử, tích quân dồn lương, chờ cơ hội phát binh tiêu diệt chúa Mạc. Đầu năm 1677, khi nhà Thanh dần trấn áp được Loạn Tam phiên, nhân việc Mạc Kính Vũ từng có qua lại với Ngô Tam Quế, chúa Trịnh đưa thư sang tố với nhà Thanh là Mạc Kính Vũ có giao hảo và giúp lương cho Ngô Tam Quế, hòng ngăn cản nhà Thanh tiếp tục hậu thuẫn cho chúa Mạc. Tháng 2 (âl) năm 1677, chúa Trịnh huy động quân năm trấn, sai Đinh Văn Tả, Nguyễn Hữu Đăng làm thống lĩnh, dẫn quân lên tiến đánh Cao Bằng.
Về phía chúa Mạc, ngoài thành Nà Lữ (còn gọi là thành Cao Bằng) là trung tâm chỉ huy, Mạc Kính Vũ đã cho tu bổ kiên cố hệ thống các thành Mục Mã (còn gọi là thành Bản Phủ), Phục Hòa, cùng các đại đồn như Khau Đồn, Háng Quang, Khau Cút... kéo dài đến hậu cứ nhà Mạc ở Lam Sơn (nay thuộc xã Hồng Việt, Hòa An). Bên cạnh đó, chúa Mạc còn cho xây dựng phòng tuyến tả ngạn sông Mãng Giang (nay là sông Bằng Giang) cực kỳ vững chắc, chuẩn bị chống trả, tiêu hao lực lượng chủ lực của quân Trịnh khi tiến quân lên Cao Bằng.
Nhờ những thông tin từ các thám tử báo về, quân Trịnh đã tổ chức binh lực chia làm 2 đường tiến lên Cao Bằng. Một cánh quân do Thái phó Nguyễn Hữu Đăng cùng Tả thị lang Hoàng Triều Hoa thống lĩnh, tiến theo đường Thái Nguyên. Cánh quân còn lại do Đô đốc Đinh Văn Tả cùng Thiếu úy Hoàng Triều Ninh thống lĩnh, tiến theo đường Lạng Sơn. Tháng 5 (âl) năm 1677, cánh quân của Nguyễn Hữu Đăng tập kết từ Bó Lài (nay thuộc xã Vân Tùng, Ngân Sơn), tiến quân vượt Pò Mò, Khau Mu (nay thuộc xã Bằng Vân, Ngân Sơn), xuyên rừng, công hạ các đồn Khau Cút, Khau Đồn (nay thuộc xã Bình Dương, Hòa An). Nguyễn Hữu Đăng muốn thừa thắng vượt sông Mãng Giang, nhưng vấp phải kháng cự của quân Mạc, không sao phá được, đành chờ quân ở Lạng Sơn lên hợp lực. Trong khi đó, cánh quân của Đinh Văn Tả theo đường Lạng Sơn tiến lên đến Thất Tuyền (nguyên là châu Thất Nguyên, nhà Mạc vì kiêng húy Mạc Phúc Nguyên nên mới đổi làm Thất Tuyền, nay thuộc huyện Tràng Định), bí mật vượt suối, tập kích diệt gọn thành Mục Mã (nay thuộc phường Hợp Giang, thành phố Cao Bằng).
Thành Mục Mã là nơi tập trung binh lực mạnh nhất của quân Mạc. Thành Mục Mã bị hạ, thành Nà Lữ gần như phơi mình ra trước chủ lực của quân Trịnh. Vì vậy, khi biết tin thành Mục Mạ thất thủ, chúa Mạc bèn ra lệnh đại đồn tiền tiêu Khau Yắm (Kỳ Sơn) bằng mọi cách chặn đứng quân Trịnh. Tuy nhiên, quân Trịnh thừa thắng, nhánh chóng tiến lên công hạ đồn Khau Yắm. Tới đây, hai cánh quân Trịnh hội quân, công hạ đồn Đống Lân (nay thuộc xã Hưng Đạo, thành phố Cao Bằng) nằm ở phía Tây thành Mục Mã, sau đó tập kết ở hữu ngạn sông Mãng Giang để vượt sông. Quân Trịnh ào ạt bắc nhiều cầu phao, chia quân vượt sông đánh tan phòng tuyến tả ngạn sông Mãng Giang, tiến đến bao vây thành Nà Lữ. Quân Mạc núng thế, các tướng Mạc bí mật đưa chúa Mạc chạy về mạn Phúc Sơn, vào cứ điểm lũng Đông Đăm (trên núi đá Phúc Tăng - sau này có tên là Lũng Hoàng) đã được chuẩn bị từ trước. Đồng thời, quân Mạc cũng tổ chức nghi binh, giả cách như chúa Mạc chạy về hướng bắc Nà Vẩư (nay thuộc xã Bế Triều, Hòa An). Quân Trịnh trúng kế, đuổi theo đến Đà Lạn mới phát hiện ra thì chúa Mạc đã về được núi Phúc Tăng.
Tuy nhiên, thành Nà Lữ rất kiên cố, quân Mạc cũng kiên cường chống trả. Quân Trịnh đánh ròng rã trong 2 tháng vẫn không hạ được, phải xin thêm viện binh và quân luơng. Đến tháng 7 (âl), thành thất thủ. Quân Trịnh tiếp tục đánh hạ các đồn Khau Thước (nay thuộc ranh giới hai xã Hồng Việt và Hoàng Tung, huyện Hòa An), Háng Quang, rồi tiến lên phía Bắc đánh hạ đồn Vỏ Mjủc (Hòa Mục, Đôn Chương), sau đó vây chặt cứ điểm cuối của của chúa Mạc ở núi Phúc Tăng. Chúa Mạc bị vây khốn, bèn bí mật trốn về thành Phục Hòa. Nhận được tin, quân Trịnh đuộc theo truy kích đến thành Phục Hòa. Tháng 8 (âl), thành bị hạ. Chúa Mạc trốn sang Long Châu (Trung Quốc), Cao Bằng hoàn toàn do quân Trịnh kiểm soát.