Ze względu na to, że większość dorzecza znajduje się na wylesionych terenach północno-wschodnich, woda jest mętna i niesie znaczne ilości osadów. Płaskie i szerokie koryto sprzyja zamulaniu. Rekordowy poziom wody odnotowano w Phả Lại w 1971 roku (7,21 m, przy przepływie 5000 m³/s w Cát Khê). Rzeka Thương wypływa z dwóch obszarów o różnej geologii, przez co jej wody mają dwa odmienne odcienie – jeden mętnawy, drugi przejrzysty. Rzeka Lục Nam przepływa przez tereny krasowe, dzięki czemu jej woda jest krystalicznie czysta przez cały rok. Ponadto na terenie miasta znajdują się mniejsze cieki wodne, takie jak Ngũ Huyện Khê, Ngụ, Dâu, Đông Côi, Bùi, Tào Khê, Đồng Khởi czy Đại Quảng Bình. Bắc Ninh posiada również liczne jeziora i stawy, w tym jezioro Cấm Sơn oraz Khuôn Thần. Jezioro Cấm Sơn leży przy granicy z prowincją Lạng Sơn, ma długość 30 km, szerokość od 200 m do 7 km i powierzchnię od 2600 ha do 3000 ha w sezonie deszczowym. Jezioro Khuôn Thần ma powierzchnię 240 ha i posiada 5 wysp pokrytych 20-letnim lasem sosnowym.