Dale Steyn and Kagiso Rabada took three wickets apiece and Heinrich Klaasen scored a maiden ODI half-century as South Africa beat Zimbabwe by four wickets to complete a whitewash in Paarl.

Steyn scored a first white-ball half-century for the Proteas on his ODI return in Bloemfontein this week and did what he does best on Saturday, taking 3-29 with a hostile display of fast bowling on captain Faf du Plessis' return.


Fellow paceman Rabada finished with figures of 3-32 as the Proteas dismissed Zimbabwe for 228, Sean Williams top scoring with 69.

That never looked like being enough, Reeza Hendricks making 66 and Klaasen 59 as South Africa cruised to its target with 25 balls to spare, consigning Zimbabwe to a 3-0 defeat.

Zimbabwe was struggling on 44/3 after Hamilton Masakadza won the toss, the skipper falling for 26 when he gloved Rabada behind.

A 73-run stand from Brendan Taylor (40) and Williams gave the underdog hope of posting a competitive total, wicketkeeper-batsman Taylor - who passed 6,000 ODI runs - finding the boundary six times in a 44-ball knock before he was stumped off Imran Tahir (2-44).

Williams followed when he was caught and bowled by Rabada and Zimbabwe were all out when Donald Tiripano (29) was undone by a slower ball from Steyn, who also got rid of Craig Ervine and Peter Moor.

Hendricks and Aiden Markram (42) put on 75 for the first wicket before Williams trapped the latter leg before and Du Plessis chipped in with 26 in his comeback from a shoulder injury.

South Africa was 122/3 in the 23rd over when Tiripano (2-35) removed JP Duminy and the same bowler ended Hendricks' excellent knock after he had struck a six and another five boundaries.

Klaasen and Khaya Zondo (25 not out) put South Africa on the brink of victory with a partnership of 66 for the fifth wicket and Steyn drove Tendai Chatara for four to consign Zimbabwe to another defeat.