Sông này dài khoảng 20 km, bắt đầu từ nơi hợp lưu giữa sông Phi Liệt (một nhánh của sông Kinh Thầy) và sông Đá Vách và chảy về hướng đông, tạo thành ranh giới tự nhiên giữa hai tỉnh thành Quảng Ninh và Hải Phòng. Đến khu vực cảng Điền Công (thành phố Uông Bí, Quảng Ninh), sông ngoặc về hướng nam[1] và hợp lưu với sông Giá tại Bến Rừng thành dòng sông Bạch Đằng.[2][3]