A match-winning performance in Galle, which ended up being a series-winning effort, gave Steyn close to full marks for this tour. He combined pace, short ball attacks, yorkers and reverse swing in a display which proved that stand-out bowlers will be stand-out bowlers no matter the conditions. Steyn did not need the surface to play to his strengths. He registered the best figures by a foreign fast bowler in Galle and made crucial breakthroughs in Colombo - which included getting Kumar Sangakkara out for just his fifth first-baller in Test cricket - to lead South Africa's charge.
Morne Morkel 12 wickets at 16.00
Often overlooked as just a support bowler, Morkel was nipping at Steyn's heels, statistically speaking, throughout this series. He adjusted his game to bowl fuller in Galle when he needed to and maintained the miserliness which allowed South Africa to keep the pressure on even after the change bowlers had begun operating. In Colombo, Morkel earned his 200th Test scalp and became the fifth-fastest South African to the milestone. Always the lion-heart, he was padded up and ready to save the series with bat too but Hashim Amla admitted relief at not needing him for that purpose.
Hashim Amla 197 runs at 65.66, 1 century
Hashim Amla led from the front even before the Tests started. He was in scintillating form in the ODIs and hoped that would translate to the Tests. The examination began in Galle where he was not among the major contributors with the bat but had an excellent tactical game. Amla's declaration, which offered Sri Lanka a chase of 370 at three runs an over was considered risky but he managed his bowlers in a way that made it seem anything but. At the SSC, Amla batted for more than eight hours to record his first century as captain and blunt the Sri Lankan challenge and he did his bit to secure the series with his 170-minute vigil in the second dig.
Vernon Philander 2 wickets at 76.00, 63 runs at 31.50
Philander made memories in the first Test but not for his bowling where he went wicket-less. He featured in a 75-run eighth wicket stand and was at JP Duminy's side when the No.7 brought up his century but was also caught tampering with the ball and fined half his match fee. In typical Philander fashion, he responded to the critics as only he can - bullishly. At the SSC, his disciplines were impeccable, length was fuller and line more attacking. His claim to the allrounder position was fueled by his batting efforts. Philander spent 105 minutes at the crease in the second innings, marshaling the tail to the draw.
JP Duminy 114 runs at 57.00, 1 hundred, 5 wickets at 33.40
After runs in Australasia and at home, the place Duminy really needed to prove himself as a Test batsman was the subcontinent, especially given his history against spin. His century with the tail in Galle did it. Duminy swept and reverse-swept with confidence and helped South Africa set up a match-winning total. The old issues returned in Colombo where he looked fragile against turn but he showed good temperament to record some of the slowest innings in Tests. Although he was classed as South Africa's back-up spinner, Duminy actually took centre stage in that department and kept run-rates down. Two of his wickets came off a long hop and half volley but sometimes that is how an under-rated but effective bowler gets them.
Dean Elgar 129 runs at 32.25, 1 century
If buffalos wore shoes, it would be their size Elgar was asked to fill when he was given Graeme Smith's position at the top of the order. In his first outing as the new opener, Elgar showed a Biff-like determination to score runs despite any technical deficiencies - and Elgar's seemed to be footwork against spin - and muscled his way to what may turn out to be a career-defining century. His trouble with turn was evident in Colombo but now that it has been exposed, he will know what he needs to work on in future.
Quinton de Kock 124 runs at 31.00, 1 fifty, 14 catches, 1 stumping
The 21-year-old was entrusted with a big responsibility when this series kicked off, which only grew as it went on. AB de Villiers' hamstring niggle meant de Kock was asked to take the gloves and bat at No.6. He scored his maiden Test fifty, took 14 catches including a stunner to dismiss Kaushal Silva in the second innings, put down only one and effected a stumping to restart his Test career on an impressive note. In Colombo, de Kock was promoted to No.3 after South Africa crawled in the first eight overs of their innings and asked to infuse some energy into the cause. He showed his attacking instincts with a gritty 37 to suggest South Africa may have found their next permanent Test gloveman.
AB de Villiers 121 runs at 30.25, 1 fifty
Niggles to his hamstring and back prevented de Villiers from participating as fully as he may have liked to in the series. He scored a half-century in Galle in quick time and accompanied Amla in holding the line at the SSC where he displayed remarkable restraint. De Villiers is a naturally creative player but curbed those instincts and concentrated on blocking South Africa to glory.
Faf du Plessis 163 runs at 40.75, 1 fifty
A fairly quiet series for du Plessis, who has been promoted to No.3 in the batting line-up, started brightly with 80 in the first innings in Galle to build on the solid start South Africa had. He formed part of the resistance in both innings in Colombo but all that was overshadowed by the catch he took to give Morkel his 200th Test wicket. Running backwards from point, du Plessis had to dive amid two other converging fielders to catch Kithuruwan Vithanage's wild swing.
Alviro Petersen 68 runs at 17.00
After promising starts in both innings in Galle, Petersen was victim to uncertainty against offspin. He reviewed both decisions but was proved incorrect both times as he was beaten by deliveries that straightened from Dilruwan Perera. Things got worse in the second Test where he threw his wicket away against the other spinner, Rangana Herath, to extend his run of century-less innings to 21.
Imran Tahir 4 wickets at 84.00
This was supposed to be Tahir's watershed tour. He would be able to play in conditions where spinners thrive, where seamers have to play second fiddle and where he had proved his worth to the limited-overs' teams a year before. But all he managed to deliver was disappointment. Tahir lacked control as he rushed through overs and was inconsistent. He sent down too many full tosses and failed to find enough flight to be considered one of South Africa's premier spinners. His hour at the crease in the first innings at the SSC and 27 minutes to save the Test later on may be the only things that kept his place in the Test squad to Zimbabwe.