Trận Vân Đồn diễn ra năm 1288 trên dòng sông Mang (Quan Lạn) gắn liền với tên tuổi của danh tướng Trần Khánh Dư. Dưới sự chỉ huy của ông, quân dân nhà Trần đã đánh tan đoàn thuyền lương của Trương Văn Hổ, góp phần quan trọng vào chiến thắng chung của trận Bạch Đằng năm 1288.
Cuối tháng 11 năm Đinh Hợi, 1287, binh thuyền của tướng Nguyên là Ô Mã Nhi bắt đầu xuất phát, theo đường biển vào nước ta. Và ngày 28-11 âm lịch (tức ngày 2-1-1288), đoàn thuyền binh này đã bị quân ta phục đánh tại cửa Vạn Ninh (Móng Cái). Mặc dù bị tổn thất khá lớn trong trận thuỷ chiến này, song đạo binh của Ô Mã Nhi vẫn tiếp tục tiến quân, hướng về Vân Đồn để vào An Bang. Tại đây, tướng quân Trần Khánh Dư đã có một trận giao chiến với địch nhưng vẫn không chặn được bước tiến của chúng. Trần Khánh Dư tập hợp toàn quân, một trận địa phục kích địch được tổ chức tại các vị trí hiểm yếu ở khu vực biển Vân Hải - Cửa Lục. Theo kế hoạch, quân ta đợi giặc tiến vào vùng Vân Hải, sẽ cho thuyền nhẹ ra khiêu chiến, nhử giặc tiến sâu vào Cửa Lục rồi phục binh đổ ra tiêu diệt.
Mấy ngày sau, đoàn thuyền lương của Trương Văn Hổ theo gió đông bắc, nặng nề tiến vào trận địa của quân ta. Theo lệnh của Trần Khánh Dư, một số thuyền chiến quân ta xông ra đón đánh. Bọn địch kháng cự nhưng không ngờ có phục binh nên vẫn cố sức tiến lên. Đến Cửa Lục, chúng tiếp tục bị quân ta đón đánh quyết liệt. Lúc này các thuyền chiến mai phục của ta mới xông ra, nhằm các thuyền chở đầy lương thảo nặng nề của địch mà đánh tới. Quân địch bị thua tan tác, số bị bắt, số bị chết đuối chìm xuống biển sâu. Chủ tướng Trương Văn Hổ chỉ kịp dùng một chiếc thuyền nhỏ chạy tháo thân về Quỳnh Châu (đảo Hải Nam - Trung Quốc bây giờ). Quân ta đại thắng, bắt được quân lương, khí giới của giặc nhiều không kể xiết.