Soumya, fresh from his unbeaten 88 in the series equalling second match, scored 90 and Tamim added an unbeaten 61 as Bangladesh raced to 170-1 after the home bowlers had restricted the mighty Proteas to 168-9 in a rain-hit game.
The first series win over the world cricket heavyweights continues minnows Bangladesh's coming-of-age party, capping another historic success for Mashrafe Mortaza's men after their maiden appearance in the World Cup quarter-final and successive series wins over India and Pakistan earlier this year.
"After losing the first match, it was difficult to come back in the second," said Mortaza.
Bangladesh bounced back from eight-wicket mauling in the first match to win the second by seven wickets.
More From This Section
"The boys played brilliantly in the third match," Mortaza said.
"The way Soumya was batting was nice to see. Mustafiz(ur) has become a very good fast bowler. Tamim showed his character. It was brilliant," he added.
Bangladesh were given a target of 170 runs according the Duckworth/Lewis Method, and they achieved it comfortably with 83 balls to spare.
One-down Litton Das hit the winning boundary after Soumya was dismissed when the victory was just a formality. Hashim Amla took the catch at short-cover off legspinner Imran Tahir.
A disappointed Amla hoped to make amends for the loss in the two-Test series that will follow the ODIs.
"We misjudged the conditions but credit to Bangladesh," he said.
Earlier, left-arm spinner Shakib Al Hasan and skipper Mashrafe Moratza reached a 200-wicket landmark to set up the win.
South Africa, opting to bat first, were in dire straits with 4-78 in 23 overs when the rain came.
JP Duminy topscored 51 off 70 balls and put 63 runs with David Miller (44) for the fifth wicket to help the visitors recover before he became the last man dismissed.
Shakib, who finished with 3-33, completed his milestone when he claimed the wickets of Faf du Plessis and captain Amla after Mustafizur Rahman gave the hosts their first breakthrough.
It also secured Shakib a place in the elite club of all-rounders who have taken 200 wickets and scored 4,000 runs in ODIs.
Only Sri Lanka's Sanath Jayasuriya, South Africa's Jacques Kallis, Pakistan's Shahid Afridi and Abdul Razzak, and the New Zealand duo of Chris Harris and Chris Cairns had achieved the double before Shakib.
He was soon joined by Mortaza (1-29) in the 200-wicket milestone after the Bangladesh captain got rid of David Miller, who gave a catch to Sabbir Rahman at backward point.
The Test series will start in Chittagong on July 21.