The Blitzboks lost their lead at the top of the World Series standings despite claiming the Plate at the Glasgow Sevens.
Neil Powell's side had earlier crashed out of the Cup competition after going down 15-0 to Fiji in the quarter-finals. The islanders went on to take the title, beating New Zealand 24-17 in a thrilling final to open up a five-point lead at the top of the standings.
The Blitzboks managed to bounce back from that early defeat with a 21-12 win over Australia to set up a meeting with the hosts in the Plate final.
Things looked to be going to plan in the final after tries from Ruhan Nel and Werner Kok gave South Africa a 12-0 lead at half-time.
The hosts, however, fought their way back into the match, threatening to send the match into extra-time when James Johnstone scored after the hooter.
Unfortunately for the hosts, Russell Weir's conversion attempt struck the crossbar, handing South Africa the narrowest of victories and 13 log points on offer.
Having led the World Series for much of the season, South Africa will now need to overhaul the Fijians at the top of the standings in next weekend's finale at Twickenham.
Blitzboks results (Day 2):
South Africa 0 Fiji 15
South Africa 21 Australia 12
South Africa 12 Scotland 10
Cup final:
New Zealand 17 Fiji 24
World Series standings (after eight rounds):
1. Fiji 147
2. South Africa 142
3. New Zealand 139
4. England 117
5. Australia 101
6. USA 86
7. Scotland 79
8. Argentina 73
9. Samoa 59
10. France 59
Photo: Philippe Lopez/AFP Photo