South Africa won the fourth one-day international against Sri Lanka by six wickets on Wednesday to take a 4-0 lead in the series.
South Africa bowled Sri Lanka out for 189 in 39.2 overs at St. George's Park in Port Elizabeth and cantered to 190-4 to put itself in position for a series sweep in the five-match contest.
Anrich Nortje took 3-57 to lead the South African bowlers and Andile Phehlukwayo 2-21.
Sri Lanka was 131-9 before a 58-run partnership for the last wicket between Isuru Udana and Kasun Rajitha took the tourists to a reasonable total.
Udana made 78 from 57 balls batting at No. 9, clubbing seven fours and four sixes. He dominated the strike in the last-wicket stand, making 55 of the 58 runs he put on with Rajitha, who finished 0 not out.
Still, the Sri Lankan total wasn't enough as opener Quinton de Kock put South Africa on course for victory with 51 at the top of the order. Captain Faf du Plessis added 43 and South Africa got home with an unbroken 46-run stand between recalled middle-order batsman JP Duminy (31 not out) and David Miller (25 not out).
The final ODI is in Cape Town on Saturday.
This is South Africa's last series before the 50-over World Cup in England and Wales, which starts in late May. Sri Lanka plays one more series against Scotland before the World Cup.