Vernon Philander (three matches, 17 wickets at 14.58)
For the second series in succession, Philander underlined his value to the South African cause. Quite simply, he looked like he would strike every time he had the ball in his hand. Conditions at all three venues suited his style of bowling but he still had to exploit them and he did so perfectly. Philander exposed the Sri Lanka batsmen's inability against seam movement with his fourth-stump line, nagging length and subtle nip. His five-for in Port Elizabeth set South Africa up to take the series lead. He finished as the second highest wicket-taker in the series and also provided handy lower-order runs.
Kagiso Rabada (three matches, 19 wickets at 17.15)
Despite leading the bowling charts, Rabada missed out on a perfect 10 because of a slightly off-colour performance in the first Test. He was down on pace in Port Elizabeth and expensive in the first innings but found his rhythm in Cape Town. Rabada's second innings six-for at Newlands took his tally in that match to 10 - the second time he has taken 10 wickets or more in his career - and sped up the Sri Lanka collapse. At the Wanderers, on a surface with bounce and carry, Rabada's threat was magnified and Sri Lanka's batsmen had little chance against him.
Dean Elgar (three matches, 308 runs at 61.60)
Opening the batting in South Africa is a tough gig anyway but when pitches are being specially prepared to have more grass on them - a tactic used to prevent deterioration and negate Rangana Herath - it's even tougher. Still, Elgar led the run charts to prove it is possible to prosper. Elgar provided a teaser of what he was capable of with 45 and 52 in Port Elizabeth and then went on to score a century at Newlands to set South Africa up for a series-winning first innings total. He also featured in two century stands with partner Stephen Cook - the first time the pair have posted more than fifty between them - to provide South Africa with much needed stability at the top.
JP Duminy (three matches, 273 runs at 54.60)
Since being promoted to No. 4, Duminy has started to fulfil the talent he showed on debut nine years ago. He shared in two important partnerships with Hashim Amla - one in the first innings of the first Test, where Duminy scored 63, and the other in the third Test, where both got hundreds. Duminy's free-flowing style of batting was particularly evident at the Wanderers, where he found boundaries with ease and scored at a rate quick enough to take pressure off the Amla. His overall Test average is still underwhelming but he has shown signs of changing that.
Quinton de Kock (three matches, 270 runs at 54.00)
The continued class from de Kock has provided South Africa with the lower-order impetus they need to take an innings from adequate to outstanding. De Kock scored 69 off 86 balls in Port Elizabeth to take South Africa's second innings over 400 and allow them to set Sri Lanka an improbable target of 488 and then he scored a century in Cape Town, off 124 balls, to contribute to a first innings total of 392. There is some suggestion that de Kock is wasted at No.7 in the line-up but the evidence is quite the opposite. Not only he has found a way to succeed there but he bats well with the tail to give South Africa depth.
Stephen Cook (three matches, 216 runs at 43.20)
Questions over Cook's technique will rage for as long as he plays but you can't argue with the numbers. Cook topped up on a first innings fifty in the opening Test with a century in the second, his second successive hundred after his Adelaide innings. His numbers were less impressive in the next two Tests but he has started to gel with Elgar and is providing South Africa with starts they can build on. Cook has three hundreds from nine Tests and averages over 40 which should secure him a spot for the next few series.
Faf du Plessis (three matches, 199 runs at 49.75)
The newly confirmed permanent captain of South Africa's Test side may not have contributed as many runs as he would have liked but his leadership made up for that. He marshalled the troops clinically, rotated bowlers - be it with three seamers in the first two Tests or four in the in the third - strategically and managed off-field issues with sensitivity and seriousness to ensure South Africa continued to operate as a cohesive unit. There's no doubt du Plessis is the right choice to take the team forward. In purely cricketing terms, his second innings 67 in Port Elizabeth helped South Africa set up the declaration and there was also that one-handed catch in the slips that earned him an extra point.
Wayne Parnell (one match, 6 wickets at 14.83)
Brought back for the Wanderers match after an almost three-year absence from the Test team, Parnell's biggest challenge was going to be whether he could find consistency. His groupings were better than they have been in the past, and there was a clear effort on his part to concentrate on precision rather than pace, but he was not able to find the swing back into the right-hander which he had at the early stages of his career. Still, he picked up six wickets at the Wanderers and there is something for South Africa to work with.
Keshav Maharaj (two matches, 7 wickets at 30.28)
This was never going to be Maharaj's series, with surfaces specifically prepared for the seamers and to neutralise spin, but he did all that was asked of him. In Port Elizabeth and Cape Town, he held up his end to allow the quicks to attack from the other. His ability to do that job without giving in to the urge to steal the spotlight as some of his predecessors (think Imran Tahir) did has earned him the confidence of team management who see him as the long-term spin option.
Duanne Olivier (one match, 5 wickets at 11.40)
An exciting quick, Olivier showed immense potential on debut in Johannesburg, where his bouncer was on display. Olivier is aggressive and intense and proved too hot to handle for Sri Lanka but did not get a chance to show off some of the other skills in his bow. He enjoys bowling with the older ball on dead pitches and is accurate and patient, things that will come in handy for South Africa in years to come.
Hashim Amla (three matches, 231 runs at 46.20)
South Africa's most experienced player struggled for the first two matches to extend a lean run that raised concerns about how much longer he would still be in the game. But, in his 100th Test match, Amla silenced the critics with a classy century that told a story of its own. The first fifty runs were torturous as his bat was beaten and he was dropped; the next fifty flowed. Amla's penchant for playing loose drives seemed to have been put away and his wrists and rhythm were back. His contributions off the field as part of the leadership core also earned him much praise.
Kyle Abbott (two matches, 5 wickets at 31.20)
His international career was abruptly ended when news that he had signed a Kolpak deal five months ago broke during the Cape Town Test. Abbott was planning to tell his team-mates after the third Test but ended up not even playing the match to end what had become his first regular run in the side. Due to injuries, since Australia Abbott has been being given consistent opportunity and after a good Port Elizabeth performance he seemed to be taking it. But with a fear that he would be dropped as soon as one of Dale Steyn or Morne Morkel returned, he chose security, of both a financial and playing perspective. He went wicketless in Cape Town and loses a point for his handling of the matter, which took many South Africans by surprise.
Temba Bavuma (three matches, 21 runs at 4.20)
The only underperforming member of the batting line-up, Bavuma had a series to forget. He collected two ducks in five innings and two other single figure scores to finish with the second lowest average for a South Africa top seven batsman in a series of at least three Tests. Bavuma's misfortune was the result of some bad shots (the hook in Cape Town, the push in Johannesburg) and some bad decisions (not reviewing in Port Elizabeth) - and he faced immense pressure over his place. South Africa's coach and convener of selectors have indicated they will keep the faith in Bavuma and with AB de Villiers uncertain over his Test return, he is likely to survive and have the chance to turn things around in New Zealand.
Firdose Moonda is ESPNcricinfo's South Africa correspondent