Cape Town - Wales finished their 2018 Test campaign in style when they beat South Africa 20-11 in a highly entertaining Test in Cardiff on Saturday.
In a tough and uncompromising clash, highlighted by numerous brutal collisions, Wales stood up well to the Springboks' physical onslaught and eventually outscored their opponents by two tries to one.
The result means Warren Gatland's charges complete their first ever clean sweep in the November internationals, as they also beat Scotland, Australia and Tonga in their previous Tests. They have also now won their ninth Test in a row.
The Springboks were full of running early on and in the fourth minute, Pieter-Steph du Toit found himself in space down the left-hand touchline, just outside Wales' 22, where he sold Hadleigh Parkes a dummy before dotting down. His effort was ruled out, however, as television replays revealed that he had a foot in touch.
Despite that setback, South Africa continued to attack and won plenty of ground but they were met by a solid defensive effort from the home side.
Wales soon got into the game and in the 11th minute, they took the lead when Ellis Jenkins burst through a tackle from Malcolm Marx, inside the Boks' 22, before offloading to Tomas Francis, who crashed over under the posts.
Gareth Anscombe added the extras and Wales held the upper hand over the next five minutes as they had bulk of the possession. And in the 15th minute, they were rewarded again when Anscombe found Liam Williams with a long pass deep inside Springbok territory before he stepped past the cover defence on his way over the try-line.
Anscombe was on target with the conversion attempt again before Handré Pollard opened the visitors' account with a long range penalty midway through the half.
In the 25th minute, Pollard had a chance to further reduce the deficit, after Gareth Davies held onto the ball on the ground, but his shot at goal missed the target. Five minutes later, Anscombe also lined up a kick, after Steven Kitshoff infringed at a ruck, but his effort hit a post.
The next 10 minutes was a slugfest with both sides spending long periods camped inside each other's half, although the Boks finished the half stronger. But, despite dominating those latter stages, they failed to add to their points tally.
In the 38th minute, Embrose Papier made a fabulous break from a line-out close to the halfway line and he did well to boot the ball ahead but knocked on when trying to regather close to Wales' try-line.
A minute later, Jesse Kriel crashed over Wales' try-line from close quarters but his effort was disallowed when the television match official ruled that it was inconclusive whether he grounded the ball.
South Africa continued to attack as the half drew to a close but just before the break, Eben Etzebeth conceded a turnover inside his opponents' 22 which meant Wales had their tails up with the score 14-3 in their favour at half-time.
The Boks came out firing in the second half and after an extensive period camped inside Wales' half, Kriel crossed in the left-hand corner after a strong carry from Duane Vermeulen and quick hands from Willie le Roux in the build-up.
Pollard's conversion attempt was off target but the Boks continued to attack and in the 62nd minute they narrowed the gap to three points when Elton Jantjies slotted a three-pointer off the kicking tee after Wales conceded a breakdown penalty.
That meant it was game on but with the Boks chasing the game, they also conceded several penalties and when it was in goal-kicking range. Wales made them pay. Dan Biggar had replaced Anscombe by then and in the 69th minute he punished a Bok infringement at a breakdown when he slotted the resulting penalty.
And in the 72nd minute, the Boks strayed offside on defence and Biggar added his second penalty which gave his side a 20-11 lead.
The game's closing stages was a frantic affair as the Boks tried desperately to haul in their hosts but it wasn't to be as Wales' defence held firm.
Wales 20 (14)
Tries: Tomas Francis, Liam Williams
Conversions: Gareth Anscombe (2)
Penalties: Dan Biggar (2)
SA 11 (3)
Try: Jesse Kriel
Penalties: Handre Pollard, Elton Jantjies
15 Liam Williams, 14 George North, 13 Jonathan Davies, 12 Hadleigh Parkes, 11 Josh Adams, 10 Gareth Anscombe, 9 Gareth Davies, 8 Ross Moriarty, 7 Justin Tipuric, 6 Ellis Jenkins, 5 Alun Wyn Jones (captain), 4 Adam Beard, 3 Tomas Francis, 2 Ken Owens, 1 Nicky Smith
Substitutes: 16 Elliot Dee, 17 Rob Evans, 18 Dillon Lewis, 19 Cory Hill, 20 Aaron Wainwright, 21 Tomos Williams, 22 Dan Biggar, 23 Owen Watkin
15 Willie le Roux, 14 Cheslin Kolbe, 13 Jesse Kriel, 12 Damian de Allende, 11 Aphiwe Dyantyi, 10 Handre Pollard, 9 Embrose Papier, 8 Duane Vermeulen, 7 Pieter-Steph du Toit, 6 Siya Kolisi (captain), 5 Franco Mostert, 4 RG Snyman, 3 Frans Malherbe, 2 Malcolm Marx, 1 Steven Kitshoff
Substitutes: 16 Bongi Mbonambi, 17 Thomas du Toit, 18 Vincent Koch, 19 Eben Etzebeth, 20 Francois Louw, 21 Ivan van Zyl, 22 Elton Jantjies, 23 Damian Willemse