Bắt nguồn từ vùng núi xã Bắc Xa ở cao độ 1.166 m thuộc huyện Đình Lập tỉnh Lạng Sơn, Việt Nam. Dòng sông chảy theo hướng chủ đạo đông nam - tây bắc từ Đình Lập qua huyện Lộc Bình, huyện Cao Lộc, thành phố Lạng Sơn, huyện Văn Lãng, huyện Tràng Định; chảy qua biên giới sang Trung Hoa tại gần Bình Nhi Thôn (平而村). Từ đây nó được gọi là Bình Nhi Hà (平而河) tiếp tục theo hướng tây tây nam - đông đông bắc khoảng 45 km để hợp lưu với sông Bằng Giang tại thị trấn Long Châu, Quảng Tây, Trung Quốc, thành sông Tả Giang, chi lưu phía nam của sông Úc Giang trong hệ thống tạo thành sông Tây Giang. Đoạn chảy trên đất Việt Nam dài khoảng 243 km, diện tích lưu vực: 6.660 km². Đây là con sông duy nhất ở miền BắcViệt Nam chảy theo hướng đông nam - tây bắc sang Trung Quốc.
Sông Kỳ Cùng có các phụ lưu chính là sông Ba Thín (sông Bản Thín), sông Bắc Giang và sông Bắc Khê. Sông Bắc Giang và Sông Bắc Khê hợp lưu gần thị trấn Thất Khê, huyện Tràng Định. Sông Bản Thín hợp lưu với dòng chính sông Kỳ Cùng tại Bản Chu xã Khuất Xá, huyện Lộc Bình.