Sri Lanka will join Australia in the VB Final Series after easing past South Africa in game 12 of the one-day series at Bellerive Oval.
Chasing 258 for victory, South Africa collapsed from 113-3 to 181 all out to finish 77 runs short of its target.
Only beleaguered Proteas captain Graeme Smith (67 from 76 deliveries) showed any real resistance, bringing up his first half-century of the summer after surviving a number of scares along the way.
But after Smith fell to super-sub Malinga Bandara - the first of Bandara's four victims - the South African reply disintegrated.
Chaminda Vaas had earlier caused significant damage to the top order with a superb opening spell of seven overs, three maidens, two wickets for 17 runs. The left-arm paceman trapped Boeta Dippenaar (9) in front of the stumps as the in-form opener attempted a delicate late cut.
Three balls later, Vaas out-thought Herschelle Gibbs who departed for no score when he chipped a slower ball back to the bowler.
Boucher and Smith started the rebuilding with a solid 50 partnership before the South African wicketkeeper - pushed up the order after a spirited knock of 76 in Sydney - dragged on following a quick-fire 24. Bandara then made crucial inroads into the Proteas' middle order.
The leg spinner struck twice in three deliveries to remove Smith and Justin Kemp for a first-ball duck, then removed Ashwell Prince for 22 and Shaun Pollock for 15 to shatter South Africa's attempted revival.
The man of the match finished with figures of 4-31 from his nine-over spell, Bandara's best bowling figures in his eight-match career.
Earlier, Sri Lanka stuttered to 257-9 after promising a far greater total. A second-wicket stand of 123 between Marvan Atapattu and Kumar Sangakkara laid the perfect platform before the pair departed within 16 deliveries trying to accelerate the run rate.
Atapattu had even survived two let offs including a run out scare before scoring a series-high 80 off 122 balls in steady fashion with Sangakkara (62 off 77) providing valuable support.
But Andrew Hall's dismissal of Mahela Jayawardene triggered a collapse as the Sri Lankans stumbled from 190-2 to 257-9 with the tail finding the boundary just three times in the final 10 overs.
Recalled Proteas paceman Dale Steyn had a day to forget. He conceded 32 runs in his first three overs as Sanath Jayasuriya (25 from 26 balls) and Atapattu built a 50 partnership in as many balls before being replaced by super-sub Johan Botha in only the 19th over.