Herschelle Gibbs top-scored with 93 not out as the hosts piled up 243 for eight after winning the toss in the fourth game of the five-match series. The first game was washed out.
Irfan Pathan's 47 not out was the best effort in India's reply of 163 all out in 38.1 overs.
The visitors were never in the running after they lurched to 39 for four in the 13th over. Medium pacer Justin Kemp finished with figures of three for 21.Scorecard of fourth One-dayer
''We're not firing yet like we know we can,'' Gibbs told reporters. ''We're winning and we're not playing our best cricket...which is great.
''There's always pressure on the top order to get some runs and it was my turn this time.'' South Africa were six for two when Gibbs came to the crease in the fourth over.
He anchored the innings, sharing half-century stands with Jacques Kallis, Mark Boucher and Shaun Pollock.
South Africa were rocked when left-arm paceman Zaheer Khan trapped captain Graeme Smith lbw for a duck with the third ball of the match and fast bowler Shanta Sreesanth yorked fellow opener Loots Bosman for another duck.
Gibbs and Kallis then shared a partnership of 69 for the third wicket before leg spinner Anil Kumble had the all rounder caught behind by wicketkeeper Mahendra Dhoni for 49.
Two overs later Kumble trapped AB de Villiers lbw for 13 but Boucher helped Gibbs shore up the innings with a stand of 61.
Medium pacer Virender Sehwag ended the partnership when he trapped Boucher lbw for 29.
India were jubilant two balls later when Sachin Tendulkar removed Kemp for a duck.
But Pollock joined forces with Gibbs to repair the damage with a stand of 61 that ended when the all rounder was run out for 37.
Smith said he was satisfied with his team's form in most areas.
''Maybe we haven't batted as well as we could have done but we've bowled and fielded very well in the series,'' he said yesterday.
Sehwag, leading India in place of the injured Rahul Dravid, blamed the defeat on his batsmen.
''Our batting was disappointing, especially in the top order, and we hardly put a partnership together,'' said Sehwag.
''We have nothing to lose now and we can enjoy Sunday's final One-day match in Centurion and look forward to next month's Test series.'' The teams next play a Twenty20 match in Johannesburg tomorrow.