The minibus collided with a truck on a road between the towns of Bronkhorstspruit and Verena, about 70 kilometres (45 miles) from Pretoria.
"It is confirmed 20 children have been killed," Russel Meiring, spokesman for the ER24 emergency medical service, told AFP.
"Paramedics arrived on the scene to find the fire services already in attendance. The fire services had already extinguished the burning vehicle, which was found lying on its side."
Many children were trapped inside the bus and most of the fatalities were declared dead at the site of the accident.
Several other children were injured, with reports that some of them were dragged from the wreckage by people at the scene.
"The children were treated for their injuries and provided with advanced life support interventions before they were transported to various hospitals in the area for further treatment," ER24 said in a statement.
The cause of the collision was not immediately known.
(Except for the headline, this story has not been edited by NDTV staff and is published from a syndicated feed.)