After a shambolic defeat in the Test series, it was time for South Africa to take revenge as Faf du Plessis (112*) not only scored an unbeaten century but also finished things off in a clinical fashion by hitting the winning runs for the Proteas. South Africa won the opening one-day international in Johannesburg against Sri Lanka by 8 wickets and lead the 5-match series 1-0.


The partnership of 136-run between the duo of Faf and Quinton de Kock ensured South Africa cruise towards the victory. De Kock missed out on a hundred but Faf ensured he gets one and fittingly finish off the match.


Sri Lanka, asked to bat first, were bowled out for 231. The proteas skipper praised veteran leg-spinner Imran Tahir, who took three for 26 in ten overs for ensuring his squad chased a modest total on a good batting pitch.


He twice broke partnerships that threatened to take Sri Lanka to a challenging total.


"He is probably my biggest weapon as a captain over the years," Du Plessis said of Tahir.


But the captain added that early strikes by Lungi Ngidi, playing in his first international match since suffering a knee injury in November, had also been important.


"Imran bowled brilliantly in the middle overs today but it is really important to get wickets with the new ball," said Du Plessis.


Ngidi took the first two wickets to reduce Sri Lanka to 23 for two.


Tahir ended a third wicket stand of 76 between Kusal Perera (33) and Oshada Fernando (49) when he had the left-handed Perera caught behind off a googly during a first spell of one for 18 in seven overs.


Kusal Mendis, who top-scored with 60, added 94 for the fifth wicket with Dhananjaya de Silva (39) before Tahir dismissed both batsmen in the first two overs of his second spell.


Sri Lankan captain Lasith Malinga rued the failure of his batsmen to capitalise on good starts.


"We lost wickets at crucial times," he said, pointing out that on both occasions when a promising partnership was broken the other 'in' batsman had been dismissed almost immediately.


Fernando, making his one-day international debut was run out one short of a half-century in Tahir's next over after Perera's dismissal.


Reeza Hendricks was caught behind off Vishwa Fernando in the second over of South Africa's innings but Quinton de Kock and Du Plessis both batted aggressively against the new ball.


(With agency inputs)