South Africa's improvement under Rassie Erasmus continued at Murrayfield on Saturday as Handre Pollard delivered 18 points in a 26-20 win over Scotland.
After a narrow defeat to England at the start of the European tour, South Africa now have back-to-back victories, having edged past France last time out.
Pollard starred for the Springboks with a try, two conversions and thee penalties in a solid display from the visitors that included some dynamic running between the lines.
Scotland helped make an absorbing clash with flowing rugby of their own – Peter Horne's try a particular highlight – but ultimately Gregor Townsend's men just came up short as South Africa became only the second side, after New Zealand, to win at Murrayfield in 12 matches.
Jesse Kriel set the tone for a thrilling encounter with the game's opening try after just six minutes, the centre finishing off after a stunning break from Pollard.
Pollard found a gap in Scotland's midfield before unloading to Embrose Papier, with the scrum-half using supporting forwards to make ground before finding Kriel.
Anything the Springboks could do, Scotland matched and they restored parity after some sublime handling from Huw Jones. The recalled 24-year-old produced two reverse passes in a flowing move that resulted in Horne touching down.
Moments later South Africa capitalised on some sloppy Scotland play to move back in front as captain Siya Kolisi starting a move that saw Pollard dive between two defenders to score.
Having kicked both conversions, Pollard added the extras from his own try before Scotland came battling back.
Stuart Hogg's stunning break was halted by Willie Le Roux, but from the resulting lineout Hamish Watson darted over in a well-worked move straight from the training ground.
Pollard's second penalty of the half gave South Africa a three-point advantage at the break but within seven minutes of the restart the sides were level again – Greig Laidlaw kicking a penalty after Le Roux had been sent to the sin bin for a deliberate knock on.
The free-flowing action of the first half was replaced by a tactical battle in the second, with Pollard's accuracy from the tee edging his side back in front.
He was unable to maintain that, though, as he missed two further penalties, but luckily for the fly-half it did not prove costly as Elton Jantjies split the posts to secure a six-point victory.
|Mourinho sacked: Jose the best Manchester United manager since Ferguson - Gerrard|
|Mourinho sacked: Ferdinand calls for ´fresh ideas´ at Man United|
|Mourinho sacked: The mystique has gone as United spell ends in divorce|
|´He´s an interest not only for us but for many´ - Zola praises rumoured Chelsea target Wilson|
|Mourinho sacked: Pochettino focused on Spurs amid Manchester United rumours|
|Mendis eyes double-century for departing Samaraweera|
|Mourinho sacked: Zola expects Jose to be in another job ´soon´|
|Mourinho sacked: Five reasons it went wrong at Manchester United|
|Mourinho sacked: Jose´s Manchester United record in Opta stats|
|Mourinho sacked: Pogba, Ronaldo and Jose´s biggest bust-ups|
|Mourinho sacked: Blanc, Solskjaer - the men who could steady the United ship short-term|
|Mourinho sacked: The football world reacts|
|Mourinho sacked: What former United stars said after Liverpool loss|
|Mourinho sacked: Where next for the axed Manchester United boss?|
|UEFA to investigate alleged racist incidents at Vidi-Chelsea|
|Australia unchanged for rest of India series|
|Mourinho sacked: Pogba´s tweet a dig at departing Man United boss?|
|Newton left frustrated by shoulder injury as Panthers lose again|
|Mourinho sacked: Pochettino & Zidane lead potential Man Utd replacements|
|Mourinho sacked: Neville urges Man United to go for Pochettino|
|Boylen pleased to see Bulls react to red rag in Thunder fracas|
|Icardi and Inter ´very far´ apart in contract negotiations|
|Mourinho leaves Manchester United|
|Curry humbled by latest milestone|
|Robertson: ´Unbelievable´ Alisson will bounce back from error|
|Curry scores 15,000th regular-season point in Warriors win|
|Rams star Gurley ´day-to-day´ with knee inflammation|
|Saints poised to clinch NFC top seed after topping Panthers|
|Mathews, Mendis centuries frustrate New Zealand|
|Kohli: Relentless Australia deserved victory|
|Relief for Paine and Australia after ending Test drought|
|Australia level series with dominant win over India|
|Libertadores holders River learn group as CONMEBOL boss calls for end to violence|
|Chargers RB Gordon planning to return against Ravens|
|Kobe Bryant visit motivated Browns´ Jabrill Peppers|
|De Bruyne: Fatigue not behind injury woes|
|´That´s not my concern´ - Broncos coach Joseph on job security|
|Lowry on Leonard´s free agency: I just want him to be happy|
|Yankees give Sabathia $500K bonus despite ejection|
|Ronaldo confirmed Juventus interest in January – Mendes|
|Lakers guard Rondo to begin rehab stint in G League|
|Saiz to leave Leeds United for Getafe|
|Whyte thinks Joshua rematch is ´only a matter of time´|
|Greenwood stars as Man United end Chelsea´s FA Youth Cup dominance|
|Panthers tight end Olsen expects ´full recovery´ after surgery|
|Derby County 0 Nottingham Forest 0: Lampard´s men fourth after tense stalemate|
|Clermont lose former All Black Toeava for six months|
|MLS unveils revamped playoff format for 2019 season|
|Ferrari to celebrate Schumacher´s 50th birthday with museum exhibition|
|Rabiot set for PSG exit after cancelling contract talks|
|Pepe departs financially troubled Besiktas|
|Philadelphia Flyers fire coach Dave Hakstol|
|Eagles to start Foles v Texans|
|PSG matches against Montpellier and Dijon rearranged|
|Martial agent clouds long-term future after United trigger extension|
|Zverev to make major final in 2019, predicts Ferrero|
|Canelo, Crawford, Lomachenko and the other pound-for-pound contenders|
|Barcelona boss Valverde admits to Lyon uncertainty|
|Club World Cup: Maverick Quintero gets another chance on the big stage|
|Henderson to miss majority of Ireland´s Six Nations campaign|
|Gentner to play on despite father´s death|
|Just good banter – Australia and India not concerned by Paine-Kohli exchange|
|Titans CB Logan Ryan out for season with broken leg|
|Suns send Trevor Ariza to Wizards for Kelly Oubre, Austin Rivers|
|Mourinho charge for ´improper´ language dismissed|
|Are the Knicks for sale? Depends on the offer, says Dolan|
|Klopp´s Liverpool are vulnerable – Neuer|
|Warrington: Frampton not an elite fighter|
|I want to finish the job off - Yates confirms Giro d´Italia focus in 2019|
|Atletico confirm Filipe Luis hamstring injury|