Diễn biến
Ngày 27 tháng 10 năm 1075, Vi Thủ An từ Tô Mậu vào đánh Cổ Vạn, chiếm được trại Cổ Vạn. Tin tức đến tận trung tuần tháng 11 mới tới được triều đình Biện Kinh của Tống tức gần tháng rưỡi. Nhưng người Tống mới chỉ nghĩ là những việc cướp nhỏ mà thôi, Tống Thần Tông còn bảo Lưu Di kể tên những người có chiến công và giúp đỡ những người có nhà bị cướp và bị đốt.
Tháng 10 năm 1075 Thường Kiệt tập trung thủy quân Đại Việt ở Đồ Sơn (vịnh Hạ Long) theo lối sau các núi đá mà tiến vào Khâm Châu; còn đi đánh Ung Châu (Nam Ninh) lục quân của quân Lý cũng chia nhiều đường:
Từ Quảng Nguyên theo bờ sông Tả tiến đánh trại Thái Bình.
Từ hai châu Tô, Mậu vượt núi qua Lộc Châu, Cổ Vạn, Tư Lăng, Thượng Tứ.
Từ châu Quảng Lăng tiến qua Thái Bình, Bằng Tường, Tư Minh và trại Vĩnh Bình.
Về mặt địa lý thì các vùng về phía Tây Bắc biên giới hai nước lúc này chưa định rõ, các tỉnh Hà Giang, Lào Cai, Lai Châu ngày nay cũng không phải đất của nhà Lý, cũng không thuộc triều Tống. Biên giới mà Tống-Lý trực tiếp giao nhau là Ung Châu gồm các trại Thiên Long, Cổ Vạn tiếp giáp Vĩnh An, Tô Mậu (Quảng Ninh); trại Vĩnh Bình tiếp một phần Quang Lang (Lạng Sơn, Lạng Châu) và một phần Quảng Nguyên (Cao Bằng); các trại Thái Bình và Hoành Sơn tiếp Quảng Nguyên. Khâm Châu sát trại Thiên Long và tiếp Vĩnh An của nhà Lý ở cửa Để Trạo.
Theo kế hoạch, nếu thủy quân chiếm được Khâm Châu thì tiến thẳng lên Ung Châu. Đề phòng người Tống xâm nhập vào đất Việt, quân Đại Việt cũng chia ra đóng ở nhiều căn cứ theo dọc đường biên giới. Đại khái quân hạ du của Lý đóng ở Vĩnh An và thượng du thì theo dọc biên thùy từ các châu Quảng Nguyên, Quảng lăng, Tô Mậu. Tổng số quân Đại Việt có từ 8 đến 10 vạn.
Cùng theo quân Lý tiến công vào Tống lần này, quân số khê động không rõ, chỉ biết rằng quân man đi trận, mang cả vợ con đi theo. Có người nói với Vương An Thạch: "...Khi Giao Chỉ vào cướp, quân có sáu vạn, trong đó có nhiều đàn bà, trẻ con. Man dân kéo hết cả nhà di theo, chỉ để một vài người ốm yếu ở nhà..." để chỉ quân khê động.
Về phía nhà Tống thì quân số cả nước lúc này chỉ khoảng 380.000 người và chủ lực tinh nhuệ lại tập trung ở phía Bắc nơi phải chịu sự đe dọa từ các lực lượng xâm lăng của Hạ và Liêu. Quân Tống ở phương Nam chiến đấu kém hơn nhiều.
Phòng ngự Ung Châu gồm hai đoàn. Mỗi đoàn có 5000 quân. Giữ biên thuỳ Đại Việt, có một tướng lại chia làm hai phần: 2000 quân đóng ở thành Ung, 3000 chia đóng ở 5 trại tiếp giáp Đại Việt: Hoành Sơn, Thái Bình, Vĩnh Bình, Cổ Vạn, Thiên Long.
Khâm Châu và Liêm Châu sát biển tiếp giáp Quảng Ninh và Lạng Sơn ngày nay, đặt viên Phòng biên tuần sứ cai quản đoàn quân Đằng Hải để hợp với quân của hai viên tuần kiểm, không quá 500 người, đóng ở hai trại: Như Tích giáp biên thuỳ châu Vĩnh Anh và Để Trạo ở cửa sông Khâm Châu.
Thường Kiệt đem thủy quân đánh vào căn cứ quân sự của Tống ở ven bờ biển thuộc Quảng Đông. Cùng một lúc Tôn Đản phụ trách lục quân chia ba đường kể trên đánh vào Quảng Tây, quấy rối các trại Hoành Sơn, Thái Bình, Vĩnh Bình, Cổ Vạn trên tiền tuyến của Ung Châu. Hàng rào này bị đổ mặc dầu quân Tống xuất toàn lực cứu cấp nhau và chống đỡ các miền Tây và Tây Nam. Nhiều chúa trại bị tử trận (chúa trại Hoành Sơn, Vĩnh Bình, Thái Bình v.v.) Mặt Đông Nam thiếu sự phòng bị. Quân Tống bị đánh bất ngờ ở địa điểm này và tất nhiên quân Đại Việt phải đánh mạnh vào đây hơn hết.
Về phía Khâm Châu và Liêm Châu quân Tống hoàn toàn bị bất ngờ, ngày 30 thág 12 năm 1075 Khâm châu bị chiếm. Ba ngày sau Liêm châu cũng mất, chúa các trại Như Tích và Để Trạo đều tử trận. Viên coi Khâm Châu là Trần Vĩnh Thái trước đó đã có người báo cho là Giao Chỉ sắp vào đánh, nhưng Thái không tin, đến khi chiến thuyền của Lý đã tới đến nơi, Thái vẫn còn bày rượu uống. Quân Lý đột nhập vào thành không mất người nào, bắt Vĩnh Thái và bộ hạ, lừa lấy của cải rồi đem giết hết.
Nhìn chung quân Lý với lực lượng áp đảo tiến ào ạt rồi thẳng lên Ung Châu không gặp một sức kháng cự nào đáng kể. Ở Liêm châu, vì đã biết tin Khâm châu mất nên có phòng bị đôi chút nhưng quân Lý ào ạt kéo vào, quân số lại đông hơn nhiều nên chiếm Khâm Châu rồi bắt tới 8.000 tù binh dùng để đưa đồ vật cướp được xuống thuyền sau cũng đem giết sạch. Viên coi Khâm châu là Lỗ Khánh Tôn và bộ hạ cũng đều tử trận. Chỉ có 7 ngày quân Đại Việt đã có mặt ở chân thành Ung Châu.
Ngày 10 tháng chạp, Tôn Đản kéo đến Ung Châu. Cánh quân chiếm được Khâm Châu tiến lên Ung Châu. Cánh chiếm được Liêm Châu tiến sang miền Đông Bắc chiếm châu Bạch.
Nửa tháng sau Ty kinh lược Quảng Tây mới hay tin về cuộc tấn công này để thông báo về triều. Vua tôi nhà Tống hết sức bối rối. Rồi nhiều nơi khác bị mất lại được cáo cấp về, Tống triều lại càng hoang mang thêm, sau đó có lệnh của Tống Thần Tông cho Quảng Châu, Quảng Tây phải cố thủ ở các nơi hiểm yếu nhất, vận- chuyển tiền, vải, lương thực để khỏi lọt vào tay quân Lý, cách chức Lưu Di, cử Thạch Giám thay coi Quế Châu và đưa viện binh tới các thị trấn đang bị uy hiếp.