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.
"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.)
Get the latest election news, live updates and election schedule for Lok Sabha Elections 2019 on ndtv.com/elections. Like us on Facebook or follow us on Twitter and Instagram for updates from each of the 543 parliamentary seats for the 2019 Indian general elections.