Giovanbattista Venditti scored a crucial second-half try as Italy bounced back from an All Blacks mauling to score an historic first 20-18 win over embattled South Africa on Saturday.

Bryan Habana, winning his 124th cap for the Springboks, gave Allister Coetzee's men an early boost with an eighth-minute try that took his test total to 67.

But Italy, now under Irish coach Conor O'Shea, were on a mission to play creative rugby and did so while repelling several promising South African attacks during an entertaining game in Florence.

Praising his players' "courage", O'Shea was quick to calm hopes of an Italian renaissance in Florence.

"I'm very happy for the players and the fans, but this is only the start us," said O'Shea, who succeeded Frenchman Jacques Brunel in July.

"We have a lot to do to change rugby in Italy, but we have the capability, talent and potential to do it.

"Today, we made a lot of mistakes and we had some problems with discipline. But the sheer heart and courage ... they weren't just brave, they were just heroic."

It is South Africa's first defeat to Italy in 13 matches and will heap more pressure on Coetzee ahead of their final November Test against Wales next week.

Coetzee pinpointed Italy's defence as the key and he was vindicated in an entertaining first half that saw the Boks left frustrated with their two-point half-time lead.

Sergio Parisse escapes with the ball to lead an Italian charge (Getty)

But Coetzee's decision to recall Habana paid dividends almost immediately when he touched over after full-back Willie Le Roux's powerful run.

Patrick Lambie missed the conversion from wide on the left just inside the 22.

Italian heads went down quickly in Rome last week when the All Blacks scored the first of 10 tries inside five minutes, but the Azzurri had been given hope by the Boks' recent crisis.

From the restart, Italy won a penalty and kicked deep into Bok territory where a driving maul, and some chaotic defence, saw Bloemfontein-born Andries Van Schalkwyk crash over for a pushover try.

Carlo Canna hit the conversion to give the hosts a 7-5 lead on 13 mins.

It sparked an immediate response, but Edoardo Padovani did well to stop Ruan Combrinck with a great touch tackle as the Boks charged down the middle.

Lood de Jager claims the ball from a Springbok line-out (Getty)

But the visitors were dogged and kept the ball moving in the middle before scrum-half Rudy Paige plucked it out and eventually found Damian de Allende in space on the right.

Italy captain Sergio Parisse made a despairing attempt at a tackle but there was no stopping the big centre. This time Lambie found a way through the posts and South Africa were ahead.

When Vincent Koch penalised from angling in at a scrum, Padovani hit a 50-metre penalty to take the score to 12-10.

South Africa started the second period in determined fashion and were given a boost when Fuser was shown a yellow card for a tip tackle on De Jaeger.

Play continued, but Combrinck missed an inside pass from Habana with the tryline begging.

Lambie kicked the penalty to take the Boks' lead to 15-10, but the visitors spurned several chances to cross for their third try, Le Roux narrowly missing going over in the corner before seeing his pass back in field go awry.

The Boks, however, were caught out spectacularly on 55 minues when the ball was fed out to the left and Venditti went over in the corner.

Canna hit the conversion for a 17-15 lead to revive thoughts of the Boks' historic defeat by Japan at the 2015 World Cup in England.

When Parisse was caught offside in his own half on the hour, Elton Jantjies fired his long-range effort over to take the score to 17-18.

But De Jaeger failed to roll away at a ruck, and Canna hit the penalty to take Italy's lead to 20-18.

Italy thought they had won the match two minutes from the end when Marco Fuser touched down following a driving maul.

Amid South African protests, the try was ruled out by video replays.