The driver lost control and the bus crashed into barriers on a bridge near Mamatlakala, causing the bus to go over the bridge and plunge 50 metres to the ground before catching fire, according to a statement by the transport department.
The bus was taking Easter pilgrims from Botswana, a landlocked country in Southern Africa, to Moria, a town in Limpopo, it added.
South African President Cyril Ramaphosa sent his condolences to Botswana and pledged support to the country, his office said in a statement.
Only an 8-year-old girl survived the crash and was receiving medical attention at a nearby hospital, Limpopo's Department of Transport said in a separate statement.
Some bodies were burned beyond recognition, while others were trapped inside the debris or scattered on the scene, the provincial department said.