The Proteas achieved the target of 67 runs after having bowled out the Sri Lankans for 211 in their second innings.
South Africa beat Sri Lanka by 10 wickets inside three days in the second and final Test on Tuesday to clinch the series 2-0 and gain some revenge for a surprise loss to the Sri Lankans the last time they toured.
South Africa bowled Sri Lanka out for 211 in its second innings at the start of the day at the Wanderers, leaving the Proteas with a simple target of 67 to win.
South Africa got there without losing a wicket. Aiden Markram was 36 not out and Dean Elgar 31 not out.
Sri Lanka’s hopes faded when captain Dimuth Karunaratne was out soon after making a century. Karunaratne led their resistance in the second innings with his 103 but he went less than five overs into the day, and with his exit Sri Lanka lost its last six wickets for 35 runs.
Pace bowler Lungi Ngidi finished with 4-44 for South Africa.
Sri Lanka started the day 150-4, with Karunaratne on 91, and had hopes of setting South Africa a reasonably challenging target on a difficult Johannesburg pitch for batsmen.
The tourists weren’t able to do that as Karunaratne fell early trying a pull shot off fast bowler Anrich Nortje. He succeeded only in looping a catch to Wiaan Mulder. His overnight partner Niroshan Dickwella was out four balls later and Sri Lanka’s resistance faded.
South Africa’s run chase was relatively untroubled.
Markram was given out in the over before lunch to a catch in the slips by Kusal Mendis but that decision was overturned when video replays showed the ball touched the ground as Mendis took it low down.
South Africa completed a first Test series win in two years and since beating Pakistan in early 2019. A month later, they were shocked to lose 2-0 at home to Sri Lanka, which became the first Asian team to win a Test series in South Africa.