Trong chiến thắng trước quân Nguyên Mông thì trận thủy chiến then chốt tại Vân Đồn đã tạo ra bước ngoặt. Danh tướng Trần Khánh Dư đánh bại đoàn thuyền lương của Trương Văn Hổ đã khiến cho quân Nguyên không còn giữ được thế chủ động và liên tiếp mắc sai lầm. Còn trong chiến thắng của quân dân ta thời nhà Lý trước cuộc xâm lược của nhà Tống thì chiến thắng trong trận thủy chiến cũng gần Vân Đồn đã tạo ra bước ngoặt.
Sau khi Lý Thường Kiệt đại phá Ung Châu, Tống Thần Tông đã tập hợp một lực lượng lớn trao quyền cho Quách Quỳ và Triệu Tiết để vừa trả đũa, vừa tìm cách xâm lược nước ta. Vì nóng lòng đánh nhanh, thắng nhanh nên vua Tống đặt trọn niềm tin vào lực lượng đánh trên bộ gồm bộ binh và kỵ binh. Khoảng 10 vạn quân, 1 vạn ngựa với sự phục vụ của 20 vạn dân phu được huy động trong cuộc chiến xâm lược của nhà Tống. Trong số này có 1 nửa là quân tinh nhuệ được huy động từ biên giới với Liêu, Tây Hạ vốn dạn dày chiến đấu.
Thậm chí, nhà Tống đã tính đến việc phá thành khi kéo quân đến sát thành Thăng Long khi mang rất nhiều khí cụ hiện đại khi ấy như máy bắn đá, xe công thành... Thế nhưng, có một cái mà nhà Tống tính dở là đầu tư không tốt cho thủy quân. Thực ra, lực lượng thủy quân nhà Tống không hề ít nhưng mà thiếu chất lượng hay nói theo kiểu người phương Bắc là tuy đông nhưng lại ô hợp. Theo sách Nghệ thuật đánh giặc giữ nước của dân tộc Việt Nam thì thủy quân Tống có đến hơn 5 vạn quân, do tướng Dương Tùng Tiên chỉ huy. Dương Tùng Tiên được vua Tống phong làm An Nam đạo hành doanh Chiến trạo đô giám, phối hợp với một số quan chức khác phụ trách từ tuyển mộ quân, trưng thu thuyền đến vạch kế hoạch tác chiến.
Như vậy có thể thấy thủy quân của Tống về số lượng thì rất đông đảo. Trong khi đó, thủy quân Việt lại phải chia làm 2. Phần lớn lực lượng tập trung cho việc bảo vệ phòng tuyến Như Nguyệt dưới sự chỉ huy của 2 hoàng tử là Hoằng Chân và Chiêu Văn với khoảng 400 thuyền và 2 vạn quân. Phần còn lại do danh tướng Lý Kế Nguyên đóng gần Vân Đồn với số lượng có lẽ dưới 2 vạn. Tuy nhiên, thủy quân ta lại có lợi thế là thạo địa hình sông nước và tinh thần chiến đấu cao.
Kết quả thủy binh Tống đã bị đội binh thuyền ta, do Lý Kế Nguyên chỉ huy, chặn lại ở Vĩnh An. Chúng cố gắng đánh mở đường để theo sông Đông Kênh tiến vào cửa sông Bạch Đằng, nhưng 10 trận liền bị quân ta đánh bại, không sao nhích lên được một bước. Đánh không thắng, quay về thì sợ tội, tiến không được, thoái không xong, Dương Tùng Tiên dùng chiêu câu giờ cho thuyền lượn lờ chiếu lệ trên biển đến hàng mấy tháng trời và gởi thư về đất liền Tống nói rõ ý của mình là lo giũ lực lượng để phòng vệ duyên hải:“Vừa rồi, tôi gặp quân liên lạc của giặc mang lệnh của viên hành quân chiêu thảo sứ bên giặc là Lý Kế Nguyên. Sau đó nhiều lần tôi đánh chúng, nhưng chúng không có ý khuất phục. Vậy xin hãy ra lệnh phòng bị nghiêm ngặt ở biên giới để tránh sự bất ngờ”.
Cuốn 'Một số trận chiến chiến lược trong lịch sử Việt Nam' phân tích: "Binh lực chủ yếu và tinh nhuệ của quân Tống vẫn là bộ binh và kỵ binh. Trong cuộc chiến tranh xâm lược nước ta, các đạo bộ binh trong đó có kỵ binh cũng giữ vai trò những mũi tiến công quyết định. Còn thủy binh chỉ là lực lượng phối hợp nhằm hiệp đồng với bộ binh, tổ chức vượt sông để tiến sâu vào nước ta. Nhà Tống đề ra nhiệm vụ của thủy binh là vượt biển tiến vào nước ta để ”ghé thuyền vào bờ bắc chờ đại quân qua sông, vì trên đường bộ tiến binh đến kinh thành giặc còn cách sông lớn, người Giao lại giỏi thuỷ chiến, sợ thuyền giặc giữ các chỗ hiểm, đại binh khó lòng qua được” (Lý Đào, Tục tư trị thông giám trường biên, sách đã dẫn). Lực lượng thúy binh này mới được tổ chức gồm những người dân chài ven biển Quảng Đông bị nhà Tống bắt vào lính. Họ chưa quen chiến trận, lại không có tinh thần chiến đấu".
Rốt cuộc 5 vạn thủy quân Tống, nhiều gấp đôi, thậm chí gấp ba so với thủy quân nhà Lý nhưng cũng không thể đạt được mục đích vượt cửa Bạch Đằng vào tiếp viện cho Quách Quỳ. Lý do như đã phân tích là lượng tuy đông nhưng chất lại thấp. Quân thủy nhà Tống mà được tổ chức gấp gáp chưa được tập luyện thực chiến nhiều nên ra biển là thua. Cũng phải nói rằng thời đó, quân phương Bắc gồm cả Tống, Hạ, Liêu hay các triều trước thời Ngũ đại cũng toàn đánh nhau trên bộ, hay cùng lắm là vài trận nhỏ trên sông chứ không mấy khi đánh nhau ở ngoài biển nên thua trước cửa Bạch Đằng cũng là điều dễ hiểu.
Vấn đề đặt ra là tại sao nhà Tống lại phải đem lực lượng ô hợp như vậy để nướng quân trên biển? Đơn giản vì Tống Thần Tông muốn nóng lòng đánh gấp để sau khi thắng là phải rút lại chủ lực về biên giới phía Bắc nên không có thời gian chuẩn bị chu đáo cho lực lượng trên biển. Tống Thần Tông đặt quá nhiều kỳ vọng vào kỵ binh và bộ binh của Quách Quỳ - Triệu Tiết trong khi xem nhẹ năng lực thủy quân nhà Lý.
Vì không có lực lượng thủy binh xuống phối hợp, Quách Quỳ đã mắc sai lầm khi ép bộ binh phải đóng vai thủy binh. Có 2 lần Quách Quỳ dùng bộ binh vượt sông. Lần thứ nhất là dùng cầu phao sau khi nghe tin đồn là quân Lý ở bờ nam Như Nguyệt trốn đi hết. Quách Quỳ cho phép tướng Vương Tiến bắc cầu phao cho đội xung kích của Miêu Lý khoảng 2.000 người vượt sông. Lợi dụng được yếu tố bất ngờ, Miêu Lý vượt sông đã thành công, chọc thủng được phòng tuyến của quân Lý, tiến khá sâu hướng vào Thăng Long. Nhưng đến vùng Yên Phụ, Thụy Lôi thì bị phục kích, bao vây. Miêu Lý cùng những binh sĩ còn sống chạy về phía Như Nguyệt nhưng đến nơi thì cầu phao đã bị hủy và gặp quân nhà Lý đón đánh và bị diệt gần hết, dù quân Tống đóng bên bờ bên kia có cố gắng cho bè sang hỗ trợ.
Sau lần đó, Quách Quỳ lại kiên trì chờ thủy binh nhưng mãi không thấy bóng dáng Dương Tùng Tiên đâu. Ngồi một chỗ thì miệng ăn núi lở nên Quách Quỳ phải mạo hiểm. Lần thứ hai, quân Tống dùng một lực lượng mạnh hơn nhiều so với lần trước và đóng bè lớn với sức chứa khoảng 500 quân để vượt sông. Bè chở quân Tống đổ sang bờ nam kiểu "trả góp" cứ 500 người một lượt là bè lại phải chèo về đón lượt sau qua sông. Khổ thay đám quân đổ bộ vừa đặt chân xuống bờ nam đã phải phải chống lại các đợt phản công mãnh liệt của quân nhà Lý trong khi việc vượt qua lũy hào rất khó khăn. Bè chở binh tiếp viện lại không qua kịp nên thật sự là Quách Quỳ đã nướng quân.
Người Tống thời đó mô tả trận đánh như sau: “Dùng bè chở 500 quân vượt sông, vừa chặt vừa đốt mấy lớp trại rào tre không được, đem bè không về để chở cứu binh nhưng lại bị giặc (chỉ quân Lý) bắt giết. Thế là quân ta (Tống) không được cứu, kẻ trốn, kẻ chết, không thành công được” (Trình Di, Trình Hạo, Nhị Trình di thư). Đợt tấn công lần hai lại kết thúc với thất bại nặng nề khiến Quách Quỳ thấy rằng, nếu không có thủy binh hỗ trợ sẽ không thể vượt sông được, buộc phải ra lệnh đưa quân về thế phòng thủ và tuyên bố rằng: "Ai bàn đánh sẽ chém!". Tất nhiên là chẳng có thủy quân nào đến nữa.
Chính chuyện không có thủy quân cộng với việc thiệt hại nặng sau khi bị quân nhà Lý phản công nên Quách Quỳ sau đó chấp nhận việc hòa để tiện đường rút quân. Một thời gian sau, Dương Tùng Tiên mới biết Quách Quỳ phải rút quân nên cũng thoái lui luôn. Trong số 10 vạn lính Tống dưới trướng Quách Quỳ - Triệu Tiết ban đầu chỉ còn 23.400 lính trở về, 1 vạn ngựa chiến thì còn lại 3.174 con. Số dân phu 20 vạn trở về không được một nửa. Bao nhiêu số đó đã thiệt mạng chỉ vì thủy quân còn câu giờ ngoài biển? Nhưng cũng chẳng trách được thủy quân Tống khi chính họ cũng nướng không ít nhân mạng trong 10 lần đối đầu với thủy quân của Lý Kế Nguyên.
Anh Tú