Đêm 25/01/1789, tức đêm 30 Tết, đạo quân chủ lực của ta do Nguyễn Huệ chỉ huy vượt sông Gián Khẩu (sông Đáy), tiêu diệt đồn tiền tiêu trên hệ thống phòng ngự của địch, mở đầu cuộc tiến công đại phá quân Thanh. Quân Tây Sơn nhanh chóng tiến lên, liên tiếp tiêu diệt các đồn quân Thanh và đuổi theo bắt gọn quân do thám của giặc. Đêm 28 tức đêm mùng 3 Tết Kỷ Dậu, quân Tây Sơn bí mật vây chặt đồn Hà Hồi (Thường Tín, Hà Tây) rồi uy hiếp buộc địch đầu hàng. Quân ta tiêu diệt một đồn lũy trọng yếu của địch cách Thăng Long 20km mà không tốn một mũi tên, hòn đạn.
Mờ sáng ngày 30 tức mùng 5 Tết, quân ta bước vào trận quyết chiến với địch ở đồn Ngọc Hồi. Đây là đồn lũy kiên cố giữ vị trí then chốt trong hệ thống phòng ngự của địch, bảo vệ trực tiếp cửa ngõ phía Nam Thăng Long.
Đồn Ngọc Hồi cách Thăng Long 14km, án ngữ con đường thiên lý trong Nam ra. Quanh đồn có chiến lũy bảo vệ. Phía ngoài lũy có bãi chướng ngại dày đặc gồm chông sắt, cạm bẫy và địa lôi. Lực lượng quân địch ở đây có khoảng ba vạn quân tinh nhuệ đặt dưới quyền chỉ huy của đề đốc Hứa Thế Hanh là phó tướng của Tôn Sĩ Nghị và là tướng chỉ huy toàn bộ hệ thống phòng ngự phía Nam Thăng Long. Sau khi đồn Hà Hồi bị tiêu diệt, Tôn Sĩ Nghị ra lệnh tăng viện cho đồn Ngọc Hồi và thường xuyên theo dõi tình hình chiến sự của mặt trận phía Nam để sẵn sàng ứng phó.
Quang Trung trực tiếp chỉ huy trận công đồn ác liệt này. Mở đầu trận đánh, đội tượng binh gồm hơn một trăm voi chiến của quân Tây Sơn xông vào tiến công. Đội kỵ binh thiện chiến của quân Thanh ra nghênh chiến bị tan vỡ nhanh chóng. Quân địch dựa vào chiến lũy, hết sức cố thủ. Chúng từ trên chiến lũy, bắn đại bác và cung tên ra dữ dội để cản đường quân ta. Một đội xung kích đã chuẩn bị trước gồm những chiến sĩ cảm tử, dùng những lá chắn lớn (ván gỗ quấn rơm ướt) che mình xông thẳng vào chiến lũy của địch. Quân ta đột nhập vào chiến lũy, giáp chiến với quân thù. Đại quân Tây Sơn ào ạt xung phong vào trận địa với dũng khí áp đảo kẻ thù. Chính quân địch cũng phải thừa nhận rằng: “Quân Tây Sơn, hợp lại đông như kiến cỏ, thế lực ào ạt như triều dâng”.
Trước sức công phá như vũ bão và tinh thần chiến đấu dũng cảm tuyệt vời của quân Tây Sơn, đồn Ngọc Hồi bị san phẳng. Một bộ phận quân địch bị tiêu diệt tại trận. Bọn sống sót sau cơn bão lửa khủng khiếp đó, bỏ chạy về Thăng Long. Nhưng Quang Trung đã bố trí một lực lượng nghi binh chặn đường, buộc chúng phải dấn thân vào cánh Đầm Mực (Thanh Trì, Hà Nội) rộng lớn và lầy lội. Tại đây, đạo quân của đô đốc Bảo đã được lệnh, lợi dụng địa hình bố trí sẵn một trận địa để tiêu diệt bọn quân Thanh. Hàng vạn quân giặc bị vùi xác dưới cánh đầm đó. Bằng trận Ngọc Hồi - Đầm Mực, quân Tây Sơn đã tiêu diệt toàn bộ quân Thanh và bộ chỉ huy của chúng tại cứ điểm then chốt nhất, đập tan hệ thống phòng ngự của địch và mở toang cửa ngõ tiến vào giải phóng thành Thăng Long.
Cũng vào mờ sáng ngày 30/01, đạo quân của đô đốc Long bất ngờ bao vây, tiêu diệt đồn Khương Thượng (Đống Đa, Hà Nội) ở phía Tây Nam thành Thăng Long. Quân Tây Sơn bí mật bao vây vào lúc trời còn tối, rồi tiến công dữ dội vào đồn giặc. Nhân dân nổi dậy cùng trực tiếp tham gia chiến đấu. Họ dùng rơm rạ bện thành con cúi, tẩm dầu đốt lửa, tạo thành một vòng vây lửa uy hiếp quân địch. Đồn Khương Thượng bị tiêu diệt nhanh chóng. Tướng chỉ huy là đề đốc Sầm Nghi Đống khiếp sợ phải thắt cổ tự tử. Hàng vạn xác giặc nằm ngổn ngang khắp chiến trường.
Sáng ngày 30/01, đạo quân của đô đốc Long tiến vào giải phóng thành Thăng Long. Trưa hôm đó, Quang Trung và đạo quân chủ lực tiến vào kinh thành giữa sự hoan hô đón chào của nhân dân. Chiếc áo chiến bào của người anh hùng “áo vải” hôm đó đã nhuốm đen khói súng của những ngày đêm chiến đấu ác liệt. Lá cờ đỏ đã từng giương cao từ những ngày đầu khởi nghĩa, tung bay theo bước đường thắng lợi của nghĩa quân, nay lại dẫn đầu đoàn quân chiến thắng tiến vào giải phóng kinh thành.
Trong lúc đó, Tôn Sĩ Nghị và bọn tàn quân đang chạy trốn một cách thảm hại. Khắp nơi, trên con đường chạy trốn, chúng bị chận đánh tơi bời và bị tiêu diệt gần hết. Số sống sót phải luồn rừng, lội suối theo đường tắt trốn về nước. Bại tướng Tôn Sĩ Nghị cũng phải vứt bỏ tất cả sắc thư, ấn tín để lo chạy thoát thân.
Một tên quan chạy theo Tôn Sĩ Nghị đã thú nhận: “Tôi với Chế Hiến (tức Tôn Sĩ Nghị) đói cơm, khát nước, không kiếm đâu ra được ăn uống, cứ phải đi suốt bảy ngày, bảy đêm mới đến trấn Nam Quan”.
Đạo quân Thanh đóng ở Hải Dương, cũng bị đánh bại. Riêng đạo quân Thanh đóng ở Sơn Tây, tuy quân ta không tiến công nhưng cũng hoảng sợ, rút chạy về nước
Từ một lãnh tụ nông dân kiệt xuất nhất, Quang Trung Nguyễn Huệ đã trở thành một anh hùng dân tộc vĩ đại, một thiên tài quân sự, một danh tướng trăm trận trăm thắng. Chỉ trong vòng 5 ngày đêm (từ ngày 30/12 - 05/01 năm Kỷ Dậu tức từ ngày 25 đến 30/01/1789), dân tộc ta dưới sự lãnh đạo tài tình của Quang Trung - Nguyễn Huệ đã vùng lên quét sạch 20 vạn quân xâm lược Mãn Thanh ra khỏi đất nước, giải phóng kinh thành Thăng Long, giải phóng Tổ quốc. Đó là một chiến công vĩ đại và hiển hách vào bậc nhất trong lịch sử chống ngoại xâm của dân tộc ta.
Thắng lợi rực rỡ của chiến dịch đại phá quân Thanh là kết quả của tinh thần chiến đấu dũng cảm của quân sĩ, sự tham gia ủng hộ mạnh mẽ của nhân dân và tài chỉ huy quân sự tuyệt vời của Quang Trung - Nguyễn Huệ đã phát huy tinh thần yêu nước của nhân dân, ý chí quyết chiến quyết thắng của quân đội, nắm vững thời cơ, triệt để lợi dụng mọi yếu tố bất ngờ để tấn công quyết liệt thần tốc tiêu diệt một lực lượng quân địch đông gấp bội.