Sau hai lần thất bại, Hốt Tất Liệt tức tối ra lệnh bãi bỏ kế hoạch
xâm lược Nhật Bản, tập trung lực lượng xâm lược Đại Việt lần thứ ba.
Khoảng gần nửa triệu bộ binh, kỵ binh và thủy binh được điều động. Khác
với lần trước, lần này chúng sử dụng một lực lượng thủy binh mạnh và cả
một đoàn thuyền lương. Thoát Hoan lại một lần nữa được giao quyền tổng
chỉ huy lực lượng viễn chinh, lập công chuộc tội.
Tháng 12-1287, quân Nguyên chia thành ba đạo theo ba hướng tiến
đánh nước ta. Đạo Thoát Hoan từ Quảng Tây tiến theo Lạng Sơn, Vạn Kiếp
- Thăng Long. Đạo do A Lỗ chỉ huy từ Vân Nam tiến xuống sông Nhị Hà.
Đạo thủy quân do Ô Mã Nhi và Phàn Tiếp chỉ huy, cùng đoàn thuyền lương
Trương Văn Hổ từ Khâm Châu tiến vào vùng biển Đông Bắc, ngược sông
Bạch Đằng...
Trên hướng bộ, Trần Quốc Tuấn chủ trương vừa đánh chặn để kiềm
chế và tiêu hao địch vừa tổ chức rút lui bảo toàn lực lượng. Thoát Hoan tiến
đến Vạn Kiếp, để lại một bộ phận quân đóng giữ, số còn lại đuổi theo quân
Trần. Tháng 2-1288, quân Nguyên vượt sông Nhị Hà tiến công Thăng
Long. Triều đình và quân đội nhà Trần lại tạm thời rút khỏi kinh thành, lui
về vùng hạ lưu.
Ở biển Đông, thủy binh ta do Trần Khánh Dư chỉ huy, chặn đánh ở
một số nơi nhưng bị tổn thất, phải rút lui. Ô Mã Nhi chủ quan, chỉ huy đội
chiến thuyền vượt lên trước, theo sông Bạch Đằng tiến nhanh về Vạn Kiếp
để hội quân với Thoát Hoan, còn đoàn thuyền tải lương thì tiến sau. Trần
Khánh Dư bố trí mai phục ở Vân Đồn, đón đánh, tiêu diệt toàn bộ đoàn
thuyền tải lương của Trương Văn Hổ.
Sau gần 1 tháng vừa chặn đánh vừa rút lui, một lần nữa quân ta rút
khỏi Thăng Long. Đầu tháng 2-1288, ba cánh quân của địch tiến vào Thăng
Long. Thoát Hoan huy động quân thủy, bộ đuổi theo quân ta, hy vọng bắt
được vua Trần, nhưng bị mất mục tiêu. Chúng điên cuồng quật mồ mả Vua
Trần Thái Tông, đốt phá làng mạc, tàn sát nhân dân.