Vaas and Kapugedera lift Sri Lanka to 321
South Africa managed a handy lead, but it could have been far more significant had it not been for the Sri Lankan lower order. Chamara Kapugedera (63) and Prasanna Jayawardene added 105 for the sixth wicket, while Chaminda Vaas and Farveez Maharoof further frustrated South Africa with a 117-run stand for the eighth. Dale Steyn returned with the second new ball to finish off the tail and help himself to his second five-wicket haul in Tests, but by then South Africa's advantage had been significantly whittled away.
The pitch wasn't much different from the first day - there was some bounce and pace on offer for the fast bowlers, while Nicky Boje managed to turn a few deliveries substantially, but the ball was also coming on to the bat, allowing the batsmen plenty of opportunity to play their strokes, once set. During the two significant partnerships, none of the batsmen were bothered by pace or spin, suggesting that there are still plenty of runs on offer.
The day started in the worst possible manner for Sri Lanka, though. Ntini had gone 31 overs without taking a wicket in the first Test, but here he needed just nine deliveries to strike, and by end of his eighth over he had fantastic figures of 4 for 22 as the Sri Lankan top order floundered against his pace, accuracy and aggression. Ntini was outstanding before lunch, landing the ball just short of good length, moving it a bit off the seam, and always keeping the attack around off stump.
Upul Tharanga perished to an ill-advised pull, Kumar Sangakkara flicked to short midwicket - ensuring there would be no repeat of the SSC run-fest - and after Steyn had taken care of the other star from the first Test, Mahela Jayawardene, Ntini returned just before lunch to nail Sanath Jayasuriya, who had battled hard for his 47, and Tillakaratne Dilshan. At 86 for 5 South Africa would have been eyeing a huge first-innings lead, but the next two sessions belonged largely to Sri Lanka.
Kapugedera and Prasanna began the rescue act, but in a manner which was astonishing for its aggression - the stand of 105 took only 20.3 overs. Kapugedera announced his intentions early, hoicking the third ball he faced, from Ntini, over fine leg for six. Prasanna repeated the act in even more emphatic manner, pulling Ntini off the front foot in a style reminiscent of Ricky Ponting, complete with a flourish and a swivel for a follow-through.
That sparked off a deluge of runs, as both batsmen launched into a stunning counterattack. Whenever the ball was even fractionally overpitched, the straight-drives and cover-drives were uncorked, and neither batsman flinched against the short stuff, instead using the pull shot to great effect. Kapugedera, playing his fourth Test, went on to register his second Test fifty, and his highest score, while Prasanna looked nothing like a batsman with a highest of 5 in three previous Test innings - when Steyn returned for a spell after lunch, Prasanna greeted him with four fours in one over, including another glorious swivel-pull and an effortless punch through extra-cover.
The pendulum briefly shifted South Africa's way again when both perished at the same score within six balls of one another, but that only signalled the start of another stubborn partnership, as Vaas and Maharoof got together.
Vaas has been growing in stature as a batsman of late - he was dismissed just twice in three Tests against England and averaged 92 with the bat, and here he was equally determined to put a huge price on his wicket. Completely organised in defence and attack, Vaas played both pace and spin with complete assurance, hardly giving the bowlers any chance. Both he and Maharoof played the drives down the ground exceptionally well.
The South African attack flagged noticeably in the intense heat and humidity - Ntini's pace dropped to around 130 kmph, while Shaun Pollock struggled to even get up to 120 kmph. Nicky Boje obtained sharp turn and bounce at times, but didn't always control his line and length.
Ashwell Prince finally needed the second new ball to break the resistance, with Steyn blasting out the lower order with his pace. He went at more than six an over, but when he landed the ball in the right places, he was a handful - Jayasuriya was distinctly uncomfortable against the short stuff which was hurled at him at more than 145 kmph, and Steyn, to his credit, didn't flag even when he was hit around for runs. Thanks to his late strikes, South Africa managed a slender lead which could yet prove invaluable over the next three days.
Upul Tharanga c Boje b Ntini 2 (16 for 1)
Short ball, angling across, top-edged a pull to mid-on
Kumar Sangakkara c Amla b Ntini 14 (43 for 2)
Flicked in the air, plucked off superbly at short midwicket
Mahela Jayawardene c Boucher b Steyn 13 (74 for 3)
Tried to cut a wide one and nicked to the wicketkeeper
Tillakaratne Dilshan b Ntini 4 (85 for 4)
Inside-edged on to his stumps while attempting to leave the ball
Sanath Jayasuriya c Gibbs b Ntini 47 (86 for 5)
Pitched perfectly in the corridor, edged to second slip
Chamara Kapugedera b Boje 63 (191 for 6)
Missed a sweep and lost his off stump
Prasanna Jayawardene b Steyn 42 (191 for 7)
Played down wrong line as the ball pitched on off and took off
Farveez Maharoof b Steyn 56 (308 for 8)
Beaten for pace by a good-length ball which crashed into off
Chaminda Vaas c Boucher b Steyn 64 (317 for 9)
Gloved a pull down the leg side, excellent diving catch
Muttiah Muralitharan c Hall b Steyn 0 (317 all out)
Mistimed a hoick to mid-on
S Rajesh is stats editor of Cricinfo