Khi Quang Trung diễu võ ngoài đồn Ngọc Hồi, đô đốc Long đang trên đường bắc tiến hướng đến Sơn Tây – nơi có đạo quân Vân Quý của Ô Đại Kinh – thì bất thần rẽ sang làng Nhân Mục nay thuộc xã Nhân Chính và Khương Đình và nửa đêm bất ngờ tập kích đồn Khương Thượng của Sầm Nghi Đống.
Theo Thánh vũ ký của Nguỵ Nguyên, các đội voi của Tây Sơn đều có đại bác trên lưng nã vào đồn. Quân Thanh bị đánh bất ngờ trong đêm tối, chết rất nhiều, tan vỡ bỏ chạy. Sầm Nghi Đống thấy không thể giữ được đồn bèn tự sát trên đài chỉ huy ở Loa Sơn (Khu vực phố chùa Bộc – Hà Nội hiện nay).
Một số tài liệu mới mà giới nghiên cứu đưa ra gần đây lại cho thông tin khác về diễn biến trận diệt đồn Khương Thượng. Theo đó, khi quân Thanh bị diệt đáng kể, Sầm Nghi Đống bỏ chạy lên cố thủ tại đài chỉ huy ở Loa Sơn. Đô đốc Long chia quân làm 2: một cánh đánh sang Nam Đồng để tiến vào Thăng Long, một ít quân tiếp tục vây hãm Loa Sơn. Sầm Nghi Đống không tự vẫn ngay mà cố thủ trên đài chờ cứu viện của Tôn Sĩ Nghị, nhưng tới ngày hôm sau không có quân cứu, Sầm mới tuyệt vọng và thắt cổ tự sát.
Nhà thơ đương thời Ngô Ngọc Du đã làm bài thơ Loa Sơn điếu cổ có câu:
Thánh Nam thập nhị kình nghê quán
Chiến điệu anh hùng đại võ công
Dịch:
Thánh nam xác giặc mười hai đống
Ngời sáng anh hùng đại võ công
Khu vực Khương Thượng và xung quanh, do xác quân Thanh chết quá nhiều, sau chất thành 12 gò cao, có đa mọc um tùm gọi là Gò Đống Đa. Trận diệt đồn Khương Thượng cũng còn gọi là trận Đống Đa.
Tiến vào Thăng Long
Hạ xong đồn Khương Thượng, ngay trong đêm mùng 4, đô đốc Long tiến vào bắn phá đồn Nam Đồng ở phía tây thành Thăng Long. Khi Tôn Sĩ Nghị nhận được tin báo việc đồn Khương Thượng thất thủ thì đô đốc Long đã diệt xong đồn Nam Đồng và tiến vào đánh bản doanh của Tôn Sĩ Nghị ở Thăng Long.
Tôn Sĩ Nghị vội vàng tháo chạy. Các tài liệu cũ đều mô tả cảnh hỗn loạn của quân Thanh.
Đại Nam chính biên liệt truyện viết:
"Tôn Sĩ Nghị đóng trên bãi cát, được tin bại trận vội vàng cưỡi ngựa một mình chạy về bắc. Tướng sĩ thấy vậy tranh nhau qua cầu mà chạy, cầu đứt, lăn cả xuống sông, chết đến vài vạn người, làm cho nước sông không chảy được."
Theo Thánh vũ ký của Nguỵ Nguyên nhà Thanh:
"Sĩ Nghị chạy trốn qua được bờ bắc sông Phú Lương (Tức sông Hồng) liền cắt đứt cầu phao khiến các đạo quân của Hứa Thế Hanh và Trương Triều Long bị bỏ lại ở bờ nam. Do đó hơn 1 vạn người vừa tướng vừa quân xô nhau nhảy xuống sông để bơi sang bờ bắc và đều bị chết đuối cả",.
Lê Chiêu Thống được tin Sĩ Nghị đã bỏ chạy, vội dắt gia quyến chạy theo, ra đến bờ sông thì cầu đã gãy, phải men theo bờ sông phía Nghi Tàm, lấy được chiếc thuyền đánh cá chèo sang được bên kia sông Hồng. Em Lê Chiêu Thống là Lê Duy Chi được sai giữ cửa ô Yên Hoa (Tức Yên Phụ ngày nay) thấy Chiêu Thống đã chạy, cũng bỏ chạy lên Tuyên Quang.
Trận Ngọc Hồi
Sáng mồng 5 Tết, khi đô đốc Long tiến vào Thăng Long, Tôn Sĩ Nghị đã bỏ chạy, Quang Trung hạ lệnh đánh đồn Ngọc Hồi. Theo Đại Nam chính biên liệt truyện, đồn này được Sĩ Nghị quan tâm phòng thủ nhất, có phó tướng Hứa Thế Hanh đích thân ra chỉ huy. Đồn có hỏa lực mạnh, xung quanh có địa lôi và chông sắt. Để phá hỏa lực địch, Quang Trung làm sẵn 20 tấm mộc đỡ đạn có tẩm rơm ướt dàn đi trước.
Theo Lê quý kỷ sự và Việt sử Thông giám cương mục, mờ sáng mùng 5, 100 voi chiến Tây Sơn tiến lên. Ngựa quân Thanh sợ voi lui lại, giẫm lên nhau, lùi về đồn. Quân Thanh không dám ra nữa, cố thủ trong đồn bắn ra. Quang Trung chia tượng binh làm hai cánh, một cánh vòng qua sau đồn Ngọc Hồi, đóng phía đông đê Yên Duyên để chặn đường địch rút; cánh kia dùng mộc tẩm rơm ướt tiến lên hãm đồn. Đại bác quân Thanh bị vô hiệu lực. Quân Tây Sơn tiến vào đồn hỗn chiến. Đại Nam chính biên liệt truyện mô tả, quân Thanh không chống nổi chạy tản ra tứ phía, lại giẫm phải địa lôi chính mình đặt từ trước nên bị chết rất nhiều. Đồn Ngọc Hồi bị quân Tây Sơn thiêu cháy.
Quân Thanh từ đồn Ngọc Hồi chạy tới đê Yên Duyên, trông thấy phục binh Tây Sơn chặn đánh, phải chạy theo đường Vịnh Kiều trốn về Thăng Long. Nhưng chạy tới nửa đường thì gặp cánh quân đô đốc Bảo đánh tới từ làng Đại Áng. Quân Thanh phải chạy lên làng Quỳnh Đô định trốn vào đầm Mực.
Như vậy toàn bộ hệ thống đồn do Tôn Sĩ Nghị