Lunch South Africa 256 for 5 (Bavuma 7*, Mulder 7*) lead Sri Lanka 157 by 99 runs
Sri Lanka clawed their way partially back into the second Test with four wickets for 23 runs in the second hour of day two. But unless more quick wickets come after lunch, even that passage of play might not matter much. South Africa had already made so much ground through Dean Elgar's 127 and Rassie van der Dussen's 67 - that partnership was worth 184 in the end - that they are 99 runs ahead of Sri Lanka, with five wickets still remaining. By the interval, Wiaan Mulder and Temba Bavuma had both made unflustered starts to their innings.
Elgar began the morning on 92, and completed his century in the fifth over of the day, thrashing a short, wide ball through point for four. He'd been out for 95 in the previous match, but was watchful and resolute through the tricky early overs on Monday, while van der Dussen lived more dangerously. It was Elgar's 13th Test ton, and he completed it off the 133rd delivery he faced, having scored quickly on the first day. He picked up that same pace after getting to triple figures, punishing bowlers in the arc from cover to mid-on when they overpitched.
In fact, there was barely a false stroke from Elgar until his dismissal, second ball after drinks. Seeing a straight, length ball just outside off stump from Dushmantha Chameera, he prodded at it with hard hands and sent an edge to the slips.
Van der Dussen had had some fortune early in the day. On 44, he edged Asitha Fernando, but was dropped by Kusal Mendis who could not quite hold on to the tough chance, diving full-length to his right. He was also hit on the pads more often than Elgar, and even raised an appeal that Sri Lanka wasted a review on.
He soon moved to his half century as well, as his own drives helped spur the score forward - this pair having put South Africa into the lead in the first five overs. He was out in somewhat unfortunate fashion, when he attempted to pull a short, legside delivery from Dasun Shanaka and offered a catch to wicketkeeper Niroshan Dickwella. This was the over after Elgar had been dismissed.
Shanaka, who has been impressive in his fourth-seamer role, then had Faf du Plessis caught by Dickwella four overs later, with an away-seaming ball, before Vishwa Fernando removed Quinton de Kock via a thick edge to second slip, where Mendis held on this time. Bavuma and Mulder saw the remaining five overs of the session out without incident.
Andrew Fidel Fernando is ESPNcricinfo's Sri Lanka correspondent. @afidelf