South Africa warmed up for two June Tests against Wales by comfortably beating a World XV in Cape Town.
Lock Alistair Hargreaves scored an early World XV try and James O'Connor kicked the rest of their points.
But scores by Bryan Habana and Toulon club-mate Bakkies Botha helped the hosts to an 18-13 lead at the break.
Hooker Bismark du Plessis then twice went over along with Johan Goosen and Willie le Roux while Morne Steyn and Goosen kicked a total of 15 points.
South Africa: Willie le Roux; Cornal Hendricks, JP Pietersen, Frans Steyn, Bryan Habana; Morne Steyn, Ruan Pienaar; Tendai Mtawarira, Bismarck du Plessis, Jannie du Plessis, Bakkies Botha, Victor Matfield (capt), Francois Louw, Duane Vermeulen, Willem Alberts.
Replacements: Schalk Brits, Gurthro Steenkamp, Coenie Oosthuizen, Flip van der Merwe, Schalk Burger, Fourie du Preez, Johan Goosen, Lwazi Mvovo.
World XV: James O'Connor; Drew Mitchell, Rene Ranger, Wynand Olivier, Hosea Gear; Matt Giteau (capt), Rory Kockott; Sona Taumalolo, Craig Burden, Carl Hayman, Juandre Kruger, Alistair Hargreaves, Mamuka Gorgodze, Roger Wilson, Steffon Armitage.
Replacements: Andrew Hore, Schalk Ferreira, Pat Cilliers, Joe Tekori, Alexandre Lapandry, Jimmy Cowan, Francois Trinh-Duc, Stanley Benson.