South Africa's first-half dominance was essential to their success as they won the third-place play-off 31-18%u200B against France at the U20 World Championship.
The Junior Boks will still have been disappointed to finish with third place but impressed in their final match of the tournament as the strength of their pack shone through.
France produced a response at the start of the second-half but it was all too late, despite playing with plenty of their customary flair.
Flanker Dan du Preez scored two tries for the Boks within five minutes before half-time to give South Africa a huge 28-8 lead at the break.
Lucas Meret knocked over the first points of the match with a penalty for France before Arthur Bonneval scored a remarkable solo try when he stepped Warrick Gelant and finished in the corner.
That score put France up 8-0 before Sharks prop Thomas du Toit scored a try off the line-out, converted by Brandon Thomson, with Jason Jenkins following him over off a set-play not long after to put the Boks ahead.
Du Preez's double then stretched the advantage as South Africa finished the half with a 20-point lead.
Julien Delannoy hit back with a try off the maul before Lucas Blanc collected a clever kick-pass for France's third try, but South Africa held on with a Thomson penalty wrapping up a 31-18 victory.
Junior Boks coach Dawie Theron and his squad might have been frustrated at missing out on the final, but signing off on a win was a positive finish to their time in Italy.
Tries: Bonneval, Delannoy, Blanc
For South Africa:
Tries: Du Toit, Jenkins, D Du Preez 2
Cons: Thomson 4
France: 15 Alexandre Pilati, 14 Arthur Bonneval, 13 Elliot Roudil, 12 Damien Penaud, 11 Lucas Blanc, 10 Lucas Meret, 9 Gauthier Doubrère, 8 Fabien Sanconnie, 7 Lucas Bachelier (c), 6 Anthony Jelonch, 5 Mathieu Tanguy, 4 Tristan Labouteley, 3 Clément Castets, 2 Camille Chat, 1 Thibaut Estorge
Replacements: 16 Julien Marchand, 17 Alain Paiva, 18 Quentin Bethune, 19 Julien Delannoy, 20 Mathieu Ugéna, 21 Thomas Fortunel, 22 Pierre Fouyssac, 23 Thomas Ramos
South Africa: 15 Warrick Gelant, 14 Malcolm Jaer, 13 EW Viljoen, 12 Daniel du Plessis, 11 Leolin Zas, 10 Brandon Thomson, 9 Ivan van Zyl, 8 Hanro Liebenberg (c), 7 Dan du Preez, 6 Jacques Vermeulen, 5 RG Snyman, 4 Jason Jenkins, 3 Thomas du Toit, 2 Jan van der Merwe, 1 Mzamo Majola.
Replacements: 16 Joseph Dweba, 17 Ox Nche, 18 Frans van Wyk, 19 Abongile Nonkontwana, 20 Jean-Luc du Preez, 21 Marco Jansen van Vuren, 22 Tinus de Beer, 23 Grant Hermanus.