Italy battled bravely in their best-ever display against South Africa
South Africa produced a subdued display but still comfortably beat Italy 29-13 in the first of a two-match series.
The world champions ran in three first-half scores via wing Bryan Habana, his 37th Test try, flanker Francois Louw and fly-half Morne Steyn to lead 22-3.
But after full-back Zane Kirchner had crossed early in the second half in Witbank, Italy earned respectability.
Scrum-half Tito Tebaldi sent captain Sergio Parisse over for a try and Mirco Bergamasco landed his second penalty.
The margin of defeat was Italy's lowest in their nine Tests against the Springboks, who they play again in East London next Saturday.
Bath's Butch James was sin-binned for a high tackle after 53 minutes on his return to the team for the first time since 2008.
Victor Matfield, who led the side in the absence of injured captain John Smit - who he drew level alongside on 95 caps - was non-plussed by his side's performance.
"I don't think we played very well," said the veteran lock. We made too many basic errors. We will take the win but we will have to be much better next week."
The second Test will be South Africa's last warm-up match before they open their Tri-Nations campaign against New Zealand in Auckland on 10 July.
Italy, meanwhile, took heart from their second-half comeback.
"It is not easy for us to play the world champions in South Africa after a long season but I am happy with the enthusiasm of my team, especially in the second half," said Parisse.
South Africa: Zane Kirchner, Gio Aplon, Jean de Villiers, Butch James, Bryan Habana, Morne Steyn, Ricky Januarie; Gurthro Steenkamp, Chiliboy Ralepelle, Jannie du Plessis, Bakkies Botha, Victor Matfield (capt), Schalk Burger, Dewald Potgieter, Pierre Spies. Replacements (all used): Bandise Maku, CJ van der Linde, Alistair Hargreaves, Ryan Kankowski, Ruan Pienaar, Juan de Jongh, Bjorn Basson.
Italy: Luke McLean; Kaine Robertson, Andrea Masi, Matteo Pratichetti, Mirco Bergamasco; Craig Gower, Tito Tebaldi; Salvatore Perugini, Leonardo Ghiraldini, Martin Castrogiovanni, Valerio Bernabo, Quintin Geldenhuys, Simone Favaro, Alessandro Zanni, Sergio Parisse (capt).
Replacements used: Fabio Ongaro, Lorenzo Cittadini, Marco Bortolami, Paul Derbyshire, Simon Picone.
Replacements not used: Riccardo Bocchino, Gonzalo Canale.