Jake White's side looked bereft of ideas in the three-quarters and were brutally exposed at the scrummage - so often an area of South African dominance - as France produced a performance that left no doubt they will be real contenders come the World Cup next year.
France had far too much ingenuity and pace in the backs and completely controlled the set-piece.
Percy Montgomery kicked 21 points for the Springboks, who also scored a try through Brent Russell, as the home side had the better of the penalty count, but the full-back's goal-kicking could not mask a tired performance by a Springbok outfit desperately missing the bull-at-a-gate aggression of flanker Schalk Burger.
The 23-year-old suffered a serious neck injury against Scotland last week and is unlikely to play again this year, but White will know from this display that his recovery is of utmost importance if the Springboks are to mount a credible World Cup challenge in France.
The French were frustrated in the first half as they completely dominated the scrummage and consistently threatened with ball in hand as Damien Traille controlled the game well from his unaccustomed position of fly-half.
They opened the scoring with a try from left-winger Cedric Heymans, who took advantage of an awkwardly-bouncing chip from fellow winger Vincent Clerc to get the better of Russell and scurry over in the corner.
Florian Fritz added a drop-goal and Dimitri Yachvili a penalty for the visitors, but South Africa went in at half-time 12-11 thanks to four well-struck penalties from Montgomery as France were repeatedly penalised at the breakdown.
White replaced tighthead prop Eddie Andrews with CJ van der Linde at half-time as the Springbok coach recognised his side's inadequacies at the set-piece.
The move seemed to work in the short term as the home side added two more Montgomery penalties early in the second half and began to play some of their most coherent rugby of the match.
Russell crossed for a try when he jinked his way to the line moments later, but France refused to lie down and responded immediately with a sublime try from Clerc who gathered a beautifully-weighted Traille grubber kick to outstrip the Springbok defence.
Traille sliced open the Springbok defence to slide in under the posts after 60 minutes and Yachvili's conversion took them into a deserved two-point lead.
Traille added a drop-goal to add to the Springboks' sense of panic and although Montgomery kicked his seventh penalty of the afternoon to set up a nailbiting finish, the French were not finished.
Clerc added his second try of the game in the 73rd minute when another flowing French move, initiated by the imperious Yannick Jauzion, saw the electric winger fly over in the corner. Yachvili's last-minute penalty put the icing on the cake for the tourists.