Đoạn sông ở phía thượng lưu có chiều dài khoảng 64 km được bắt đầu từ nơi hợp lưu của hai con sông Cầu và sông Thương (còn có tên gọi là Ngã ba Lác, gần cầu Phả Lại tại địa phận 3 xã Đồng Phúc - Yên Dũng - Bắc Giang; xã Đức Long - Quế Võ - Bắc Ninh và Phả Lại - Chí Linh - Hải Dương). Qua cầu Phả Lại, sông Thái Bình chảy ngoằn ngoèo theo hướng bắc-nam, đi qua và làm ranh giới tự nhiên giữa tỉnh Bắc Ninh và các huyện Chí Linh, Nam Sách của Hải Dương. Từ địa phận xã Minh Tân (huyện Nam Sách) đổi hướng chảy theo hướng tây-đông. Tới xã Nam Đồng thuộc thành phố Hải Dương nó đổi hướng chảy theo hướng tây bắc-đông nam. Tại địa phận thành phố Hải Dương nó nhận thêm nước của sông Sặt và sau đó tại ngã ba Mũi Gươm nó nhận nước từ sông Gùa (dài khoảng 4 km, nối sông Thái Bình với sông Văn Úc). Đoạn này của sông Thái Bình kết thúc tại ngã ba Mía (ranh giới giữa bốn xã Vĩnh Lập (huyện Thanh Hà), An Thanh, Quang Trung (huyện Tứ Kỳ), Đại Thắng (huyện Tiên Lãng, Hải Phòng)). Tại đây nó gặp sông Mía (tên gọi của đoạn sông dài khoảng 3 km nối sông Thái Bình với sông Văn Úc) và sông Cầu Xe.
Hạ lưu
Đoạn s