Bowlers Kagiso Rabada and Tabraiz Shamsi starred on Sunday in South Africa's five-wicket hammering of Sri Lanka in the first one-day international as it provided some consolation for a disappointing tour.
They claimed four wickets each to help bowl out Sri Lanka for 193, a total the visitors passed in just 31 overs to take a 1-0 lead in the five-match series.
South Africa's chase depended on an 86-run third-wicket stand between Quinton de Kock and skipper Faf du Plessis, who both hit 47.
Off spinner Akila Dananjaya struck at crucial moments to get three wickets but Jean-Paul Duminy ensured a swift chase with his 32-ball unbeaten 53.
But it was a superb opening pace spell from Rabada and Shamsi's career-best figures of 4-33 with his left-arm wrist spin that led South Africa to their first victory of the tour after being swept aside in a two-Test series.
"Feels much better to be chatting as a winning captain," du Plessis said afterwards.
"In the Test series we didn't play well. There is a new group of players for the ODIs. I also thought we've learnt lessons, had good discussions and put pressure on their spinners by taking a few risks."
After the recent defeats, du Plessis said South Africa were now looking forward to the rest of the tour.
Sri Lanka's innings lasted just 34.3 overs but batsman Kusal Perera hit a gritty 81 to lift the hosts from a precarious 36-5 following their decision to bat first.
Kusal, whose 72-ball stay included 11 fours and a six, put on a crucial 92 for the sixth wicket stand with Thisara Perera, who made 49 to give the total a modicum of respect.
Kusal and Thisara counter-attacked to hit the South African bowlers to all parts of the ground as Sri Lanka reached 100 in the 16th over.
The left-handed batting duo cashed in on the inexperience of rookie pacemen Willem Mulder and Andile Phehlukwayo as they plundered runs.
But the introduction of spin in the 18th over put Sri Lanka in trouble again. Shamsi broke the dangerous partnership by getting Thisara caught behind.
Kusal kept up the good work to reach his fourth ODI fifty and got support from Dananjaya in a 38-run partnership.
He finally fell to Shamsi, who won the man of the match award, after being caught at point while attempting a reverse sweep. The innings folded soon afterwards.
South Africa suffered a wobbly start to their chase after opener Hashim Amla and Aiden Markram fell to the guile of Dananjaya, who opened the attack for the hosts.
The left-right batting combination of de Kock and du Plessis blunted Sri Lanka's spin threat with their measured approach.
However de Kock and du Plessis were denied their fifties after Dananjaya and left-arm spinner Lakshan Sandakan got the batsmen out respectively.
Duminy, who hit six fours and two sixes, kept calm to complete his 26th ODI half-century and the veteran left-hand batsman hit the winning runs.
"It wasn't the best day but we have four more games to bounce back," said Sri Lanka skipper Angelo Mathews.
"Getting bowled inside 34 overs was pretty disappointing. We will take the positives and move forward," said Mathews, who returned as one-day captain in January.