Sông Cấm là một nhánh sông ở hạ lưu thuộc hệ thống sông Thái Bình, chảy qua địa phận Hải Phòng.
Dòng sông bắt đầu tại ngã ba An Dương thuộc địa phận xã Minh Hòa (thị xã Kinh Môn, tỉnh Hải Dương) nơi hợp lưu của hai con sông Kinh Môn và sông Hàn, một phân lưu của sông Kinh Thầy.
Từ ngã ba Nống, sông chảy cơ bản theo theo hướng tây bắc-đông nam nhưng uốn khúc tạo thành hình dạng chữ M, đến địa phận phường Quán Toan (quận Hồng Bàng, thành phố Hải Phòng) đổi hướng chảy theo hướng đông và đông nam chảy qua trung tâm thành phố. Trước đây sông Cấm đổ ra biển tại cửa Cấm, tuy nhiên từ năm 1978 chính quyền thành phố Hải Phòng đã cho xây dựng đập Đình Vũ nên sông Cấm không còn thông ra biển mà thay vào đó toàn bộ dòng chảy hợp lưu với sông Bạch Đằng đổ ra cửa Nam Triệu. Sông Cấm là ranh giới giữa các địa phương như huyện An Dương, thành phố Thủy Nguyên, quận Hồng Bàng, quận Ngô Quyền và quận Hải An. Cảng Hải Phòng nằm trên sông cách cửa Cấm khoảng 5 km.
Thủy lưu sông Cấm gây khó khăn cho hoạt động hải cảng Hải Phòng vì lượng phù sa bồi lắng cao. Thủy lộ từ biển vào cảng mỗi năm bị 1,5 triệu đến 3 triệu tấn mét khối trầm tích lấp đầy nên muốn duy trì thủy lộ đủ để các tàu với trọng tấn cao có thể cập bến được. Tính vào đầu thế kỷ XXI nhà chức trách cảng muốn duy trì tầm sâu tối thiểu là 5,5m trên sông Cửa Cấm bằng cách nạo vét lòng sông hằng năm tuy đúng ra phải nạo 3 lần mỗi năm mới đạt được tiêu chuẩn thông thương.