South Africa hooker Adriaan Strauss scored both of his country's tries as they defeated Scotland 21-10 at Murrayfield.
Andy Robinson's side improved markedly in the second period but they were made to pay for a sluggish first 40 minutes where they failed to get to grips with their opponents.
That saw them sink to their second straight defeat in the autumn internationals, after they had lost 51-22 to New Zealand on 11 November.
Springboks' fly-half Pat Lambie scored the first points of the contest when he fired over a penalty after seven minutes before his opposite number Greig Laidlaw followed suit.
But the visitors were already benefiting from their superior physical strength and after Lambie had slotted another penalty, Strauss scored the first of his tries on 24 minutes.
A powerful surge from the South Africa forwards allowed Strauss to get on the ball and cross after Scotland had failed to deal with a short line-out.
Lambie missed the conversion attempt and when offered the opportunity to reduce the deficit with a penalty soon afterwards, Laidlaw did likewise.
A further three-pointer from Lambie after the home side had once again strayed offside ensured the Springboks went in 14-3 to the good at half-time, with Andy Robinson's side struggling to find any rhythm in their play.
Two tries in six minutes after the restart then brought a tepid contest to life, Strauss strolling to the line from around 40m for his second try after a hopeful long-pass from Mike Blair had been picked off by the hooker.
That belatedly spurred Scotland into action and replacement scrum-half Henry Pyrgos scored the first try for his country as he nipped through a gap in the South Africa defence after Kelly Brown knocked the ball down to him at a line-out.
Both tries were converted and no more points were added, despite concerted pressure from Scotland that saw Brown and Jim Hamilton held up on the line by some spirited defending.
The away side finished the game with 14 men after Flip van der Merwe was yellow carded for a foul at a line-out but Riordh Jackson's 'try' was then chalked off after Tim Visser had knocked on.