YOKOHAMA -The Springboks will face England in the Rugby World Cup final on Saturday after beating Wales 19-16.
Wales will play New Zealand for third place on Friday.
Centre Damian de Allende scored the only try for the Springboks while Josh Adams scored in the corner for Wales.
South Africa took a slender 9-6 lead over Wales at half-time.
Flyhalves Handre Pollard and Dan Biggar traded penalties in a largely uninspiring first period low on running rugby and heavy on box kicking.
But there was a huge blow for Wales when towering wing George North pulled up chasing a high ball and was substituted just before the break.
After a scrappy start from both sides, the Springboks took the lead after 15 minutes through a Pollard penalty when flanker Justin Tipuric was caught on the wrong side of a maul.
Wales fly-half Biggar hit back just minutes later to bring the sides level at 3-3 but Pollard struck again on 20 minutes to take the Springboks the advantage.
Pollard again stepped up to extend the Springbok advantage to 9-3 but Biggar pulled one back, giving Wales something to take into the second period.
Wales have never reached a World Cup final, whereas South Africa won in 1995 and 2007 and are hoping to repeat their pattern of a win every 12 years.