Giteau scored the opening try for the Barbarians
Barbarians (15) 22
Try: Giteau, Williams, Elsom
South Africa (5) 5
South Africa's World Cup-winning year ended with a defeat as a tired-looking side were outplayed by the Barbarians.
Matt Giteau opened the scoring with a typical Barbarian counter-attack try as the visitors failed to make the most of their early pressure at Twickenham.
Barend Pieterse's try gave South Africa hope but tries either side of the break by Martyn Williams and Rocky Elsom ended hopes of a Springbok revival.
Jason Robinson set up a try and earned a standing ovation on his farewell.
South Africa's Ryan Kankowski came close to the opening try when he broke free and charged up the left wing following a scrappy Mark Regan line-out throw.
But Joe Rokocoko's superbly-timed tackle knocked him into touch inches short of the line.
That break camped South Africa on the Baa-Baas line, and it just looked like a matter of time before they scored.
But when the try came, it was a thrilling Barbarian breakaway, after an uncharacteristic handling mistake by Habana.
Ma'a Nonu and Giteau combined well to set up Conrad Smith to cover half the pitch, and he looked to have lost the initiative before off-loading to Rokocoko, whose pass put Giteau over to touch down.
Nonu wasted two good chances to add to that advantage before Schalk Burger's late replacement Pieterse finished off a Habana-inspired attack to put South Africa on the scoreboard.
But when Francois Steyn's ill-judged kick went straight down the throat of Robinson, making his final appearance on the world stage, it just set up the next Baa-Baas try.
His electric burst brought the crowd to its feet and set up Williams for a slick finish just before the break, and when Elsom added another straight after the restart, the Barbarians were out of sight.
The death of the match as a competitive event coincided with rain setting in, and the spark of the first half was lost as the conditions grew worse.
Pride meant that South Africa began to treat the game more like a competitive Test, but for all their efforts and pressure, they rarely had try-scoring chances.
With 13 minutes left, Robinson was substituted, to a standing ovation, with his place going to Peter Grant.
Troy Flavell was yellow-carded with 10 minutes to go for a clumsy high challenge on Habana as a game which had promised so much early on ended up petering out to a tame conclusion.
Barbarians: Robinson, Rokocoko, Smith, Nonu, Neivua, Giteau, Marshall, Pucciarello, Regan, Ma'afu, Cockbain, Harrison, Elsom, Williams, Collins. Replacements: Brits, Moller, Flavell, Owen, Shanklin, Grant, Cohen.
South Africa: Pienaar, Ndungane, Fourie, Steyn, Habana, Pretorius, Januarie, van der Linde, B. du Plessis, J. du Plessis, Muller, Ackermann, Pieterse, Smith, Kankowski. Replacements: Liebenberg, van der Merwe, van den Berg, Lobberts, Olivier, Julies, Jantjes.