Justin Tipuric's try five minutes from time completed a 27-13 Wales victory over South Africa that piled pressure on beleaguered coach Allister Coetzee after a record-breaking run of defeats.
Hooker Ken Owens also crossed in a match where fullback Leigh Halfpenny kicked 17 points as Wales beat South Africa for just the third time in 32 Tests.
Wales were comfortably placed at 20-6 up but debutant flanker Uzair Cassiem's converted try 11 minutes from time gave the Springboks hope.
But Wales back row Tipuric stopped any thoughts of a comeback well-taken score.
Defeat meant South Africa had lost eight of their 12 internationals in 2016 - their worst full year since they return from apartheid isolation.
The result was a new blow for Coetzee, who took over after South Africa finished third at last year's Rugby World Cup.
Victory also meant Wales had won three of their four November Tests after a thumping 32-8 defeat by Australia was followed by narrow wins over Argentina (24-20) and Japan (33-30).
A lacklustre first half where neither side threatened a try ended with Wales 12-6 in front after Halfpenny kicked four penalties to two from South Africa flyhalf Elton Jantjies.
Following last week's last-gasp 33-30 win over Japan, Wales coach Rob Howley reverted to the bulk of the side that beat Argentina 24-20 a fortnight ago, with the only exception seeing Dan Lydiate replace injured captain Sam Warburton in the back row.
RESULT
Wales 27
Tries: Owens (45) Tipuric (75)
Conversions: Halfpenny 1 (77)
Penalties: Halfpenny (11, 17, 21, 33, 42)
South Africa 13
Tries: Cassiem (69)
Conversions: Lambie 1 (70)
Penalties: Jantjies 2 (6, 23)
RESULTS IN 2016
Played: 12
Won: 4
Lost: 8
Matches
Jun 11 RSA v IRL, Cape Town: L 26-20
Jun 18 RSA v IRL, Johannesburg: W 32-26
Jun 25: RSA v IRL, Port Elizabeth: W 19-13
Aug 20: RSA v ARG, Nelspruit: W 30-23
Aug 27: ARG v RSA, Salta: L 26-24
Sep 10: AUS v RSA, Brisbane: L 23-17
Sep 17: v NZL v RSA Christchurch: L 41-13
Oct 01: RSA v AUS, Pretoria: W 18-10
Oct 08: RSA v NZL, Durban: L 57-15
Nov 12: ENG v RSA, Twickenham: L 37-21
Nov 19: ITA v RSA, Florence: L 20-18
Nov 26: WAL v RSA, Cardiff: L 27-13