Cánh quân của Lang trung tướng quân Tông Đản đã tới chân thành Ung Châu trước vào ngày 18.1.1076. Ngay sau đó mấy ngày cánh quân Lý Thường Kiệt cũng kịp tới hội quân. Quân Đại Việt hợp sức vây thành tới mấy vòng. Tri châu Tô Giám dựa vào thành cao hào sâu, khí giới lương thực dồi dào để cố thủ.
Do trúng kế của quân Đại Việt gây tổn thất nhiều quân ở tuyến biên giới nên binh lực Ung Châu còn khá ít, quân chính quy chỉ còn có 2.800 người. Khi quân Đại Việt rầm rộ kéo tới, dân chúng thành Ung Châu sợ hãi mà trở nên hỗn loạn, chen nhau tìm cách chạy trốn.
Tô Giám cho quân lính tập họp dân chúng, đem hết của cải công và của riêng ra khích lệ, rồi dùng lời phủ dụ: “Khí giới ta đã dự bị đủ, lương thực trữ cũng không thiếu. Bây giờ giặc đã đến dưới thành. Chỉ còn cách cố thủ lấy thành để đợi ngoại viện, ắt là ta sẽ thắng.
Nếu có một ai chạy, thì lòng dân sẽ náo động, và đại sự sẽ hỏng. Nếu các ngươi nghe ta, thì sẽ được hậu thưởng. Nếu có ai không nghe mà bỏ chạy, thì ta sẽ chém”.
Dân chúng toàn thành do vậy mà răm rắp nghe theo. Giám gom cả quân chính quy lẫn dân binh được khoảng 5000 quân chiến đấu, điều động toàn bộ dân chúng thành Ung Châu chừng gần 6 vạn người làm phu phen, trợ chiến và tham gia thủ thành.
Quân Đại Việt ban đầu dùng máy bắn đá bắn vào thành, giết nhiều quân dân Tống. Lại dùng thang vân thê (thang lắp trên xe đẩy) trèo lên tường thành thì bị quân Tống dùng đuốc dầu và hỏa tiễn đốt cháy thang. Thành cao, tượng binh Đại Việt không phát huy được nhiều.
Tô Giám nhân lúc sơ hở dùng 100 quân cảm tử chèo thuyền nhỏ men theo sông Ung Giang tập kích quân ta làm thiệt hại 10 voi chiến và hai viên tướng, toàn bộ quân tập kích cũng bỏ mạng. Quân Ung Châu dùng nỏ Thần tý – một loại nỏ lớn bắn một phát được nhiều mũi tên với sức công phá lớn bắn vào quân Đại Việt công thành gây thương vong nhiều.
Quân Đại Việt không giáp chiến được, lại lui ra xa dùng máy bắn đá bắn vào thành, vây bức không cho quân dân thành Ung Châu ra ngoài thành lấy nước.
Lưu Di ở thành Quế Châu hay tin Ung Châu bị vây, sai viên Đô giám Trương Thủ Tiết đem quân đi cứu viện. Trương Thủ Tiết sợ quân Đại Việt sẽ hạ thành Ung Châu sớm, lại nghe tin báo quân Đại Việt rất đông nên cho dừng quân dọc đường nghe ngóng được thua chứ không tiến nhanh.
Trương Thủ Tiết dẫn quân đi đường vòng từ Quế Châu tới Tân Châu, đóng quân ở trại Khang Hòa theo dõi động tĩnh. Tô Giám sai người đem thư bọc sáp vượt vòng vây cấp báo cho viên Đề điểm hình ngục Tống Cầu. Tống Cầu nhận thư, sang đốc thúc Trương Thủ Tiết.
Thủ Tiết bấy giờ mới tiến quân. Lý Thường Kiệt đang vây Ung Châu thì nhận được tin từ quân do thám rằng quân cứu viện đang trên đường tới, liền chia quân đặt mai phục ở ải Côn Lôn, một nơi hiểm yếu nằm giữa đường từ Tân Châu tới Ung Châu. Trương Thủ Tiết dẫn quân tới Côn Lôn bị đánh úp không kịp trở tay, quân Tống phút chốc tan chạy, bị bắt và bị giết rất nhiều.
Trương Thủ Tiết bị chém ngay tại trận tiền cùng các quan tướng khác là Đề cử Tả Giang Ôn Nguyên Dụ, Đô giám Hồ Nam Trương Biện, Tuần kiểm các châu Ung - Tân Hứu Dự, Tuần kiểm các châu Liễu – Tân – Tượng Vương Trấn. Đạo viện binh quan trọng này của Tống bị diệt, Ung Châu đã hoàn toàn bị cô lập.
Trong khi quân ta vây thành Ung Châu thì vua Tống mới nhận được tin Khâm Châu thất thủ. Triều đình nước Tống náo động. Ty kinh lược Quảng Nam Tây Lộ nước Tống dời về thành Tượng, xin cấp thêm 2 vạn quân tiếp viện, 1 ngàn ngựa và một tháng lương cùng khí giới để chống quân ta.
Vua Tống lệnh cho toàn lộ Quảng Nam Đông Lộ (Quảng Đông), Quảng Nam Tây Lộ (Quảng Tây) tăng cường bố phòng, cố thủ nơi hiểm yếu. Liền sau đó hai ngày thì tin Liêm Châu thất thủ về tới kinh đô nước Tống.
Vua Tống tỏ ra bối rối, ra hai chiếu chỉ ngược ý nhau cho Ti kinh lược Quảng Tây. Ban đầu vua Tống hạ chiếu : “Nếu xem chừng có quân Giao Chỉ tới đâu mà không đủ quân giữ, thì chỉ giữ mấy chỗ hiểm yếu mà thôi…” nhưng rồi lại dặn : “Nếu quân bỏ thành mà đi chỗ khác, thì lo rằng lòng dân rối sợ. Hãy bảo các quan ti đều phải trở lại thành mình” .
Sau đó, triều đình Tống đã lên kế hoạch chấn chỉnh và phản công. Lưu Di bị cắt chức Kinh lược sứ, Thạch Giám được cử thay. Vua Tống cho tuyển thêm tân binh, dồn quân, chuyển lương tới thành Quế Châu.
Thang mây đánh thành của quân Đại Việt
Mặc khác, Tống triều vẫn tự tin là thành Ung Châu cao và chắc, cho rằng quân Đại Việt không thể hạ nổi. Vương An Thạch tâu với vua Tống: “Thành Ung Châu rất chắc, quyết là không phá nổi”.
Vua Tống tin vậy, nhân đó chuẩn bị một đội quân đông đảo rút từ phía Bắc nước Tống giao cho tướng Triệu Tiết chỉ huy dự định sẽ đánh thẳng vào Đại Việt, nhằm gián tiếp buộc Lý Thường Kiệt phải rút quân, giải vây cho Ung Châu và để báo thù, thôn tính nước Đại Việt như chiến lược vạch ra trước đó.
Đội quân này chủ yếu được rút từ biên giới phía Bắc nước Tống, tổng quân số khoảng 10 vạn với những tướng lĩnh dày dạn kinh nghiệm. Ngoài chánh tướng là Triệu Tiết, vua Tống còn cử hoạn quan Lý Hiến và tướng Yên Đạt làm phó tướng.
Trong khi đại bộ phận quân chủ lực của Đại Việt còn giằng co với quân Tống ở thành Ung Châu thì chủ trương dùng một đạo quân đánh thẳng vào lãnh thổ Đại Việt là một đòn hiểm của Tống triều.
Thành Ung Châu trong chiến lược của vua tôi nước Tống vốn là nơi tập kết chủ chốt của cải và nhân lực để tấn công Đại Việt, thì nay trở thành một điểm cầm chân quân chủ lực Đại Việt để đại quân Tống tấn công bằng con đường khác đánh thẳng vào nước Đại Việt.
Từ đây chiến sự thành Ung Châu không chỉ là vấn đề đánh tan một căn cứ hậu cần xâm lược của nước Tống mà yêu cầu đặt ra đối với đạo quân dưới trướng Lý Thường Kiệt là phải hạ thành sớm và có phương án bảo toàn lực lượng để kịp thời bố trí phòng thủ ở trong nước, chuẩn bị đón đại quân Tống sắp tiến sang.
Bởi nếu không hạ được thành Ung Châu mà sớm rút quân, mục tiêu chiến lược của cuộc Bắc phạt coi như không hoàn thành trọn vẹn và từ Ung Châu quân Tống sẽ có một bàn đạp thuận lợi để xâm lược.
Còn nếu tốn quá nhiều thời gian hay quân lực cho chiến sự Ung Châu, Đại Việt sẽ bị hở sườn và nguy cơ bị đánh úp trong lúc quân chủ lực không có mặt trong nước, nguy cơ mất nước lại càng lớn hơn.