At least 15 children and one driver died and 42 others injured after their school bus plunged into the water in Knysna, Western Cape province, the police said.
South African Press Association (SAPA) reported that injured children have been taken to hospital and are being treated for minor injuries and shock.
Western Cape police said the children were pupils at the Rheenendal primary school and were on their way to school when the accident happened.
"We not sure how many children were on the bus. We are retrieving it from the water and divers will continue to search for more bodies. The bus plunged off a lower bridge into a river that appears to have flooded during the night by heavy rainfall," one police said.
Andre Visser, spokesman of emergency medical care service ER24, said the children were aged from seven to 17. He said the driver lost control of the bus and it rolled into the dam.
SAPA reported that police divers, paramedics and emergency services were on the scene.
Western Cape transport MEC Robin Carlisle said he was on his way to Knysna.
SAPA said Basic Education Minister Angie Motshekga was shocked at the deaths.
"The department of basic education would like to send sincere condolences to the families of the learners, and indeed the entire schooling community," she said in a statement.
The Road Traffic Management Corporation has sent an accident investigation team and reconstruction specialists to assist the investigation into the crash.