Heyneke Meyer's men started the match with a buzz as Adriaan Strauss and JJ Engelbrecht both scored inside the first 23 minutes but they had to wait until the final quarter for further tries by Bryan Habana, captain Jean de Villiers and Bjorn Basson.
The Azzurri's solo try came courtesy of centre Alberto Sgarbi during a resurgent second-half showing.
The hosts made a lively start and almost scored in the first minute after an error by their opponents at the kick-off but Basson was bundled into touch.
However, an infringement from Italy moments later allowed Morne Steyn, who scored 17 points, to kick his team in front with a penalty right in front of goal.
The lead was doubled in the ninth minute when hooker Leonardo Ghiraldini failed to release in the tackle and Steyn popped over again.
The visitors' early troubles worsened in the 13th minute as veteran lock Marco Bortolami was sent to the sin bin after entering a ruck from the side – French referee Pascal Gauzere losing patience after yet another infringement.
From the subsequent penalty lineout, Strauss carried the ball over from the base of a strong maul as the Boks claimed their first try.
Meyer's men further capitalised on their numerical advantage in the 23rd minute when Habana latched onto a bouncing ball in his own 22-metre area, sliced through a big hole in the Italian defence and passed outside to Engelbrecht to run in his first points in the green and gold.
Italy should have at least pulled a try back shortly after when Edoardo Gori knocked on five metres out, while debutant flyhalf Alberto Di Bernardo missed a straight forward penalty before the half-hour mark.
South Africa continued to venture forward in the closing passage of the half, although the Azzurri showed more signs of settling, with the score 20-0 at the interval.
The Italians started strongly after the restart and an attacking move ended with the 43rd minute yellow carding of Basson for a high tackle.
And they followed the hosts by capitalising on the numerical advantage with Sgarbi going over after collecting an innovative through-the-leg flick from skipper Sergio Parisse.
Di Bernardo added the conversion, and then a penalty, which was given when Marcell Coetzee failed to roll away, to halve the half-time lead with 20 minutes to play.
The hosts were clearly battling at that stage, but they finally managed to pick up some points after 64 minutes when the Italian defence failed to release, with Steyn sending over his third penalty.
A fumble from the Europeans then undid some of the earlier hard work, with Strauss swinging wide to Habana, who cut inside cleverly from the right, shrugged off some half-hearted tacklers and skipped away for a 48th international try.
With five minutes to go, De Villiers crossed after the ball was quickly worked wide to the left, with Basson adding the finishing touches courtesy of an intercept try. – Sapa