Yokohama - The Springboks will play England in the Rugby World Cup final after Handre Pollard scored 14 points to steer Rassie Erasmus' team to a hard-fought 19-16 victory over Wales in Yokohama on Sunday.
As it happened | Springboks v Wales
Pollard nervelessly kicked the decisive penalty with four minutes to go as the tense game threatened to go to extra time with the scores locked at 16-16.
"We're in the final of the World Cup... but that's only half way there. We'd love to win the World Cup," said South Africa coach Rassie Erasmus.
"We play a class England team in the final now but we're there. We've got a a chance now and we might go all the way. You never know."
It was a true battle of the boot as the 1995 and 2007 World Cup champions ground out a victory that consigned Wales to their third tournament semi-final defeat after previous losses in 2011 and 1987.
"It wasn't our day but I'm still proud to pull this jersey on and represent all the people in this stadium," said Wales captain Alun Wyn Jones, who was close to tears.
The two teams played out a dreadful first half of rugby dominated by turgid set-piece, crash balls and aerial combat as both sides kicked the leather off the ball.
There was none of the verve shown by England in their gripping 19-7 victory over New Zealand on Saturday, but the slowed rhythm suited the Springboks and their giant pack of forwards, reprising the tactics they also employed in their 26-3 quarter-final victory over Japan.
Bok scrumhalf Faf de Klerk showed a spark of flamboyance at the very start of the game, darting down the shortside from a scrum and chipping ahead, George North just doing enough to cover on the bounce.
But any glimmer of bright, attacking rugby quickly faded amid a first quarter mired by never-ending scrum resets and poor kicking.
When Justin Tipuric failed to roll away, Pollard stepped up and made no mistake with a simple first penalty, quickly neutralised by Dan Biggar when Willie Le Roux strayed offside, before the Bok flyhalf got his second after a Welsh scrum wheeled.
Aerial ping-pong resumed, Wales scrumhalf Gareth Davies eventually spilling a ball to hand the Boks advantage, as the first 'Mexican Wave' rippled around the stadium on 25 minutes to rival the action on the pitch.
Wales came pouring in at the side of a driving maul and Pollard made no mistake with his third penalty.
Welsh woes continued as tighthead prop Tomas Francis, the most used player by Gatland since the last World Cup with 41 Tests played, injured his shoulder in a tackle on Duane Vermeulen from the restart.
One of Gareth Davies' many box kicks almost came to fruition as Biggar fielded and offloaded to North, but the rare sortie into Bok territory was ended by a smart tap-tackle by the ubiquitous de Klerk.
North, clutching a leg, followed Francis off the pitch as Biggar kicked his second penalty after Aaron Wainwright was taken out off the ball to make it 9-6 at half-time, both teams shuffling off the pitch in front of a subdued arena.
Biggar levelled the scores with his third penalty early in the second period, before Damian de Allende finally broke the try-scoring deadlock.
The Bok centre shrugged off a weak challenge by Biggar and fended off Owen Watkin and Tomos Williams for a fine individual five-pointer that Pollard converted.
With 20 minutes to play Wales spurned a shot at goal to go for deep lineout. The maul was thwarted but the Welsh went through multiple phases and were eventually awarded another penalty in front of the posts, electing to go for the scrum.
The bold decision, made to gasps from the crowd, paid off as Ross Moriarty managed to get the ball to Tomos Williams who fed Jonathan Davies, the centre's instantaneous pass finding Josh Adams, who crossed in the corner for his sixth try of this World Cup.
Halfpenny hit the conversion to put the scores level and with Wales suddenly in the ascendancy.
But Rhys Patchell and Pollard both missed with ambitious drop-goal attempts before the latter kicked his crucial fourth penalty to eliminate Wales and set up a final against England on Saturday.
15 Leigh Halfpenny, 14 George North, 13 Jonathan Davies, 12 Hadleigh Parkes, 11 Josh Adams, 10 Dan Biggar, 9 Gareth Davies, 8 Ross Moriarty, 7 Justin Tipuric, 6 Aaron Wainwright, 5 Alun Wyn Jones, 4 Jake Ball, 3 Tomas Francis, 2 Ken Owens, 1 Wyn Jones
Substitutes: 16 Elliot Dee, 17 Rhys Carre, 18 Dillon Lewis, 19 Adam Beard, 20 Aaron Shingler, 21 Tomos Williams, 22 Rhys Patchell, 23 Owen Watkin
15 Willie le Roux, 14 S'bu Nkosi, 13 Lukhanyo Am, 12 Damian de Allende, 11 Makazole Mapimpi, 10 Handre Pollard, 9 Faf de Klerk, 8 Duane Vermeulen, 7 Pieter-Steph du Toit, 6 Siya Kolisi (captain), 5 Lood de Jager, 4 Eben Etzebeth, 3 Frans Malherbe, 2 Bongi Mbonambi, 1 Tendai Mtawarira
Substitutes: 16 Malcolm Marx, 17 Steven Kitshoff, 18 Vincent Koch, 19 RG Snyman, 20 Franco Mostert, 21 Francois Louw, 22 Herschel Jantjies, 23 Frans Steyn