The SA team trailed 6-10 at the break, but managed to play the big points better in the second half to overhaul their opponents.
Wales deserved credit however, as they refused to stop chasing the game and were hard on attack at the final whistle.
The opening points came the way of SA Schools flyhalf, Kian Meadon, who slotted a penalty from close range.
SA Schools fullback, Zeilinga Strydom, intercepted a pass 60 meters out and raced in fro what appeared to be first try of the match, until he was called back for a neck roll by a team mate and the decision reversed to a penalty to Wales, allowing flyhalf Thomas Mathews to level the scores.
Wales then took the lead after a period of sustained pressure, with centre Mason Grady bursting open the midfield to dot down, with Mathews converting.
Meadon scored a second penalty kick to cut the lead to four before half time.
The South Africans regained the lead early in the second half via scrumhalf, Jurich Claasens.
From a powerful scrum, the scrumhalf played a move off the back of the scrum with No 8, George Cronje, and as the gap opened up, he raced through to score next to the poles.
The conversion was good to delight and the crowd happy with the lead and they were soon back on their feet for a great run and try in the corner from Jan-Hendrik Wessels (prop).
The lead jumped out to 18-10, as the momentum swung towards the South African side.
However Mathews kicked a second penalty to cut the lead to five once more and there were some anxious moments on both sides, with both teams coming close to claiming a decisive score.
A crucial turnover by South Africa on their own line eased the pressure and when Wales conceded another penalty via a high tackle, the SA side swooped.
They forced an attacking line-out and from that, kept plugging away with bursts close to the ruck until the Welsh defence buckled and flanker, Jarrod Taylor, burst through from close range for a try five minutes from time to seal the deal.
SA Schools - Tries: Jurich Claasens, Jan-Hendrik Wessels, Jarrod Taylor. Conversion: Kian Meadon. Penalties: Meadon (2).
Wales - Try: Mason Grady. Conversion: Thomas Mathews. Penalties: Thomas Mathews (2)