Duanne Olivier again played a key role as South Africa completed a 3-0 whitewash of Pakistan with a 107-run victory in the third Test at the Wanderers.

Comfortably the leading wicket-taker in the series, Olivier took his tally to 24 with two scalps on Monday, which helped dismiss Pakistan for 273 in their second innings.

The tourists had resumed on 153-3, but lost Babar Azam and Sarfraz Ahmed to successive deliveries from Olivier – the captain recording his third duck in six innings – and came up well short of their target of 381 despite defiance from Asad Shafiq (65) and Shadab Khan (47 not out).

Olivier, who only played the first Test because Vernon Philander was injured, finished with 3-74 and match figures of 8-125, while there were also three wickets for Kagiso Rabada on the fourth and final day as the Proteas moved up to second in the Test rankings.

Pakistan's hopes suffered a double blow early on when Babar (21) and Sarfraz fell in the 43rd over.

Babar was bamboozled by a short-pitched delivery that he gloved to Quinton de Kock, while Sarfraz was cleaned up by one just short of a length after seemingly anticipating a similar ball to that which accounted for his team-mate.

From there the Proteas steadily built up pressure to restrict their opponents' run rate and it was not long before another wicket fell, with Shafiq snaffled at second slip off the bowling of Philander (1-41).

While Shadab played with a degree of freedom, accumulating seven boundaries in his unbeaten knock, he found no reliable company out in the middle.

It took a fine Aiden Markram catch to account for Faheem Ashraf (15), whose attempted cut shot off Rabada (3-75) did not pay dividends, and the same bowler-fielder combination accounted for Mohammad Amir as Pakistan lurched towards defeat at 208-8.

They did manage to delay the inevitable for another 11 overs, Rabada taking out Hasan Ali caught and bowled, before a mix-up between Mohammad Abbas and Shadab saw the former run out to complete Pakistan's misery.