A. Bối cảnh trận chiến
Mùa Xuân năm 1287, Thoát Hoan lại kéo 30 vạn quân tái xâm lăng Đại Việt, viện cớ đưa Trần Ích Tắc về làm An Nam quốc vương.  Bên ta, vua Nhân Tông lại cử Hưng Đạo Vương thống lãnh toàn quân chống giặc. Vương bố trí các tướng trấn đóng các yếu điểm và chỉ thị các tướng áp dụng chiến thuật: khi địch mạnh thì tạm lui tránh để bảo tồn lực lượng, đợi khi thời cơ tới thì xua quân tốc chiến tốc thắng.

Quân Nguyên Mông tiến vào nước ta theo hai ngả: Thoát Hoan theo đường bộ, và Ô Mã Nhi, Phàn Tiếp theo đường thủỵ

Ban đầu thế giặc quá mạnh, quân ta theo đúng chiến thuật tạm lui, quân Nguyên tiến nhanh cả trên bộ lẫn trên biển. Chúng chiếm được Vạn Kiếp, tập trung ở đó và đánh rộng ra xung quanh, chiếm được Chí Linh, Thăng Long tạo thành thế ỷ dốc để tiếp ứng cho nhau. Vua Nhân Tông và thượng hoàng Thánh Tông phải dời về Thanh Hoá. Bộ chỉ huy và phần lớn lực lượng Đại Việt rút về vùng Đồ Sơn, Hải Phòng, từ đó tổ chức các cuộc tấn công vào căn cứ Vạn Kiếp, đánh thủy quân Nguyên.

Chiến thắng Vân Ðồn

Khi quân Nguyên tấn công bến Vân Đồn, Phó tướng Vân Đồn là Nhân Huệ Vương Trần Khánh Dư được Hưng Đạo Vương trao phó trách nhiệm phòng thủ miền biển đã chỉ huy quân ta chống giặc. Tuy nhiên vì thế giặc quá mạnh đã xuyên thủng phòng tuyến phòng thủ, qua được ải An Bang tiến chiếm Vạn-Kiếp, khiến Thượng hoàng Thánh Tông sai người bắt Trần Khánh Dư đem về triều đình xử tội. Khi sứ giả của vua đến, ông nói: «Lấy quân pháp mà xử, tôi cam chịu tội, nhưng xin khất hai, ba ngày, để mưu lập công rồi về chịu tội búa rìu cũng chưa muộn»

Ô Mã Nhi đắc thắng, nghĩ rằng đã đánh tan hải quân của nhà Trần và đoàn thuyền vận lương của Trương Văn Hổ theo sau cũng sẽ không gặp trở ngại gì, nên Ô Mã Nhi trở về Vạn Kiếp trước. Trần Khánh Dư mưu sâu, đoán được đoàn thuyền vận lương sẽ theo sau đại quân Nguyên nên quyết chí lập công phục hận. Ông nhanh chóng tập hợp và bổ sung lực lượng, phục binh chờ đoàn thuyền vận lương của Trương Văn Hổ. Quả nhiên , đoàn thuyền lương của Trương Văn Hổ đã trúng phục binh của Trần Khánh Dư và bị đánh cướp hết cả. Trương Văn Hổ chạy thoát về Quỳnh Châu.

Đại Việt Sử KýToàn Thư, quyển V ghi: «Khánh Dư liệu biết quân giặc đã qua, thuyền vận tải tất theo sau, nên thu thập tàn binh đợi chúng. Chẳng bao lâu, thuyền vận tải đến, Khánh Dư đánh bại chúng bắt được quân lương khí giới của giặc nhiều không kể xiết, tù binh cũng rất nhiều. Lập tức, sai chạy ngựa mang thư về báo. Thượng hoàng tha cho tội trước không hỏi đến và nói: chỗ trông cậy của quân Nguyên là lương thảo khí giới, nay ta đã bắt được, sợ nó chưa biết, có thể còn hung hăng chăng? Bèn tha những tên bị bắt về doanh trại Nguyên để báo tin. Quân Nguyên quả nhiên rút lui. Cho nên năm này, vết thương không thảm như năm trước, Khánh Dư có phần công lao trong đó».

Quân Nguyên triệt thoái

Trước tình hình bất lợi vì thiếu lương thực và có nguy cơ bị đối phương chia cắt, quân Nguyên đành bỏ Thăng Long rút về Vạn Kiếp, rồi chủ động rút lui dù quân Đại Việt chưa phản công lớn. Quân Nguyên định tổ chức rút về Trung Quốc theo nhiều hướng khác nhau.
Ngày 3 tháng 3 năm Mậu Tí (1288), Hữu thừa Trình Bằng Phi, Thiên tỉnh Đạt Mộc thống lĩnh kị binh đi tìm đón các cánh quân di chuyển bằng đường thủy (đoàn thuyền lương của Trương Văn Hổ). Khi qua chợ Đông-Hồ thì bị dòng sông chắn ngang, phải quay lại, nhưng cầu cống đã bị quân nhà Trần bám theo sau phá hủy. Quân Nguyên rơi vào thế nguy, trước mặt thì bị quân Trần chận đường, sau lưng là chướng ngại thiên nhiên. Tuy nhiên quân Nguyên do tra hỏi những tù binh nên cũng đã tìm được đường thoát.
Ngày 7 tháng 3 năm 1288, cánh quân Mông Cổ rút bằng đường thủy đi tới Trúc Động, tại đây họ bị quân nhà Trần chặn đánh, nhưng tướng Nguyên là Lư Khuê chỉ huy quân này đánh lui quân nhà Trần.
Ngày 8 tháng 3 năm 1288, Ô Mã Nhi không cho quân rút về bằng đường biển mà quyết định đi theo sông Bạch Đằng, vì biết rằng đường biển đã bị thủy quân nhà Trần phong tỏa. Ô Mã Nhi nghĩ  phòng bị đường sông của quân nhà Trần có thể sơ hở, yếu kém, hơn nữa sông Bạch Đằng nối liền với nội địa Trung Quốc bằng thủy lộ, sẽ thuận lợi cho việc lui binh.
Tình thế quân Nguyên lúc bây giờ như cá nằm trong chậu, như kiến bò miệng chén, rất khốn đốn nguy ngập.

Bố trí quân Trần

Đầu năm 1288, sau khi di tản khỏi kinh đô Thăng Long, Trần Hưng Đạo đã biết được tình hình nguy khốn của quân Nguyên Mông. Vương cũng dò được ý định rút quân của Ô Mã Nhi và Thoát Hoan, nên thông báo cho các tướng thời cơ đã đến, cần xua quân tốc chiến.

Hưng Đạo Vương quyết định đánh một trận lớn tiêu diệt thủy quân Mông Cổ rút qua sông Bạch Đằng. Sông Bạch Đằng trước đó cũng là một địa danh lịch sử khi Ngô Quyền đã từng đánh thắng quân Nam Hán trong năm 938, kết thúc giai đoạn hơn 1000 năm Bắc thuộc. Trần Hưng Đạo đã nghiên cứu kỹ lưỡng quy luật thủy triều của con sông này để vạch ra thế trận bãi cọc mai phục quân Mông Nguyên.

Vương cắt đặt, chỉ huy quân dân Đại Việt chuẩn bị một trận địa mai phục lớn trên sông Bạch Ðằng, là nơi đoàn thuyền của quân Nguyên sẽ phải đi qua trên đường rút chạy. Các loại gỗ lim, gỗ táu đã được đốn trên rừng và kéo về bờ sông để đẽo nhọn, cắm xuống lòng sông ở các cửa dẫn ra biển như sông Rút, sông Chanh, sông Kênh, làm thành những bãi chông ngầm lớn, kín đáo dưới mặt nước.

Ghềnh Cốc là một dải đá ngầm nằm bắt ngang qua sông Bạch Ðằng nằm phía dưới sông Chanh, đầu sông Kênh, được sử dụng làm nơi mai phục thủy binh, phối hợp với bãi cọc chông ngầm, ngăn chận thuyền địch khi nước triều rút.

Thủy quân Đại Việt bí mật mai phục phía sau Ghềnh Cốc, Ðồng Cốc, Phong Cốc, sông Khoái, sông Thái, sông Gia Ðước, Ðiền Công. Còn bộ binh bố trí ở Yên Hưng, dọc theo bờ bên trái sông Bạch Ðằng, Tràng Kênh, ở bờ bên phải sông Bạch Ðằng, núi Ðá Vôi …Phía sông Ðá Bạc  để trống cho quân Nguyên kéo vào.

Ðại quân của vua Nhân Tông và Thương Hoàng Thánh Tông đóng quân ở Hiệp Môn (Kinh Môn, Hải Dương) trong tư thế sẵn sàng lâm trận tiếp ứng cho chiến trường.
Đầu năm 1288, sau khi di tản khỏi kinh đô Thăng Long, Trần Hưng Đạo đã biết được tình hình nguy khốn của quân Nguyên Mông. Vương cũng dò được ý định rút quân của Ô Mã Nhi và Thoát Hoan, nên thông báo cho các tướng thời cơ đã đến, cần xua quân tốc chiến. Hưng Đạo Vương quyết định đánh một trận lớn tiêu diệt thủy quân Mông Cổ rút qua sông Bạch Đằng. Sông Bạch Đằng trước đó cũng là một địa danh lịch sử khi Ngô Quyền đã từng đánh thắng quân Nam Hán trong năm 938, kết thúc giai đoạn hơn 1000 năm Bắc thuộc. Trần Hưng Đạo đã nghiên cứu kỹ lưỡng quy luật thủy triều của con sông này để vạch ra thế trận bãi cọc mai phục quân Mông Nguyên.Vương cắt đặt, chỉ huy quân dân Đại Việt chuẩn bị một trận địa mai phục lớn trên sông Bạch Ðằng, là nơi đoàn thuyền của quân Nguyên sẽ phải đi qua trên đường rút chạy. Các loại gỗ lim, gỗ táu đã được đốn trên rừng và kéo về bờ sông để đẽo nhọn, cắm xuống lòng sông ở các cửa dẫn ra biển như sông Rút, sông Chanh, sông Kênh, làm thành những bãi chông ngầm lớn, kín đáo dưới mặt nước. Ghềnh Cốc là một dải đá ngầm nằm bắt ngang qua sông Bạch Ðằng nằm phía dưới sông Chanh, đầu sông Kênh, được sử dụng làm nơi mai phục thủy binh, phối hợp với bãi cọc chông ngầm, ngăn chận thuyền địch khi nước triều rút. Thủy quân Đại Việt bí mật mai phục phía sau Ghềnh Cốc, Ðồng Cốc, Phong Cốc, sông Khoái, sông Thái, sông Gia Ðước, Ðiền Công. Còn bộ binh bố trí ở Yên Hưng, dọc theo bờ bên trái sông Bạch Ðằng, Tràng Kênh, ở bờ bên phải sông Bạch Ðằng, núi Ðá Vôi …Phía sông Ðá Bạc  để trống cho quân Nguyên kéo vào. Ðại quân của vua Nhân Tông và Thương Hoàng Thánh Tông đóng quân ở Hiệp Môn (Kinh Môn, Hải Dương) trong tư thế sẵn sàng lâm trận tiếp ứng cho chiến trường.

B. Diễn biến trận đánh Bạch Đằng giang

Khi Ô Mã Nhi dẫn đoàn thuyền tiến vào sông Bạch Đằng nhân lúc nước lớn, thủy quân nhà Trần tràn ra giao chiến, rồi giả thua chạy vào sâu bên trong. Ô Mã Nhi vốn đã thắng thủy quân của Trần Khánh Dư trước đây nên trúng kế khích tướng, thúc quân ra nghinh chiến. Các tướng Phàn Tham Chính, Hoạch Phong cũng ra tiếp ứng. Khi thuyền quân Nguyên đã vào sâu bên trong sông Bạch Đằng, tướng Nguyễn Khoái dẫn các quân Thánh Dực ra khiêu chiến và nhử quân Nguyên tiến sâu vào khúc sông đã đóng cọc chông. Quân nhà Trần đợi cho thủy triều xuống mới quay thuyền lại và đánh thẳng vào đội hình địch.

Thủy quân Đại Việt từ Hải Đông, Vân Trà từ các phía Điền Công, Gia Đước, sông Thái, sông Giá nhanh chóng tiến ra sông Bạch Đằng, với hàng trăm chiến thuyền cùng quân lính các lộ dàn ra trên sông và dựa vào Ghềnh Cốc thành một dải thuyền chặn đầu thuyền địch ngang trên sông. Trong lúc thủy chiến đang diễn ra dữ dội thì đoàn chiến thuyền của hai vua Trần đóng ở vùng Hiệp Sơn (Kinh Môn, Hải Dương) bên bờ sông Giáp (sông Kinh Thần, vùng Kinh Môn, Hải Dương) làm nhiệm vụ đánh cầm chừng và cản bước tiến của địch, cũng tấn công từ phía sau khiến quân Nguyên càng lúng túng và tổn thất rất nặng.

Sông Bạch Đằng nước triều lớn rất nhanh mà rút cũng mạnh, nên khi nước rút thuyền của quân Nguyên bị cọc gỗ đâm thủng, đắm chìm nghiêng ngã, quân Nguyên chết đuối hoặc bị giết vô số. Bị tấn công tới tấp trên sông, một số cánh quân Nguyên bỏ thuyền chạy lên bờ sông bên trái của Yên Hưng để tìm đường trốn thoát, nhưng vừa lên tới bờ họ lại rơi vào ổ phục kích của bộ binh Đại Việt, bị chặn đánh tan tác. Ô Mã Nhi cùng với binh lính dưới quyền chống cự tuyệt vọng trước sự tấn công của quân Trần, vì quân Nguyên của Thoát Hoan không tới cứu viện được, nên đến chiều đạo quân này hoàn toàn bị quân Trần tiêu diệt.

Theo Nguyên sử, ghi truyện của Phàn Tiếp, chép rằng kịch chiến xảy ra từ giờ mão đến giờ dậu, tức là từ sáng kéo dài đến chiều tối mới kết thúc. Nguyên Sử có chép về tướng Nguyên Phàn Tiếp: “Tiếp cùng Ô Mã Nhi đem quân thủy trở về, bị giặc đón chặn. Triều sông Bạch Đằng xuống, thuyền Tiếp mắc cạn. Thuyền giặc dồn về nhiều, tên bắn như mưa. Tiếp hết sức đánh từ giờ mão đến giờ dậu. Tiếp bị súng bắn, rớt xuống nước. Giặc móc lên bắt, dùng thuốc độc giết”.

C. Kết
Quân nhà Trần đại thắng, bắt được hơn 400 chiến thuyền, tướng Đỗ Hành bắt được tướng nguyên là Tích Lệ Cơ và Ô Mã Nhi dâng lên Thượng hoàng Trần Thánh Tông, tướng Nguyên là Phàn Tiếp bị bắt sống, rồi bị bệnh chết, Siragi và Lý Thiên Hựu cũng bị bắt sống. Đạo thủy quân của quân Nguyên hoàn toàn bị tiêu diệt.

Thoát Hoan được tin thất trận Bạch Ðằng, liền kéo quân rút chạỵ lên Lạng Sơn,  tới ải Nội Bàng bị phục binh của Phạm Ngũ Lão đổ ra đánh, tướng giặc Trương Quân bị Phạm Ngũ Lão chém chết. Quân Nam tiếp tục truy kích, thêm hai tướng giặc là A Bát Xích và Trương Ngọc bị tử trận. Riêng Thoát Hoan được tùy tướng Trình Bằng Phi hết lòng phò nguy, mới chạy thoát được về Tầu.

Thế là sau ba lần xâm lăng nước ta, đạo quân Nguyên Mông hùng mạnh nhất thế kỷ 13 đã chuốc lấy thảm bại và chịu từ bỏ hẳn mộng xâm lăng Đại Việt. Những chiến công hiển hách ấy là thuộc về các vua, quan và dân đời nhà Trần, song sáng chói nhất là vị thống soái Hưng Ðạo Vương Trần Quốc Tuấn..

Nhìn rộng hơn, chiến thắng của Đại Việt, của Hưng Ðạo Ðại Vương, cũng làm suy yếu dần dần thế lực của Nguyên Mông  ngay tại cả Trung Hoa đang bị người Mông Cổ cai tri, dẫn đến việc Hốt Tất Liệt từ bỏ ý định xâm lăng Nhật Bản.