This was a long time coming from South Africa's openers. Three years, actually. That's the last time a South African top two put on a 100-plus stand, 22 Test matches and 43 innings ago. Since then, South Africa's starts have been more shaky than stable, with the result that inconsistency has riddled the entire line-up.
Specifically, this was a long time coming for Aiden Markram. Almost two years. That's the last time he crossed 50 in a Test match, against this same opposition eight innings and 22 months ago. Since then, he has struggled against spin in India and sat out with injury last summer, with the result that he saw this series as crucial to securing his long-term spot in the side.
It's early days, but the way that he batted today would have gone some way to doing that. Markram's silky 68 should have become his fifth Test century and his trudge back to the change-room after he threw it away showed that he knew it. It's not just that Markram has been in sparkling form or that his last four innings at this ground have brought three centuries and a 75, it's that both conditions and circumstances were right for him to cash in.
SuperSport Park is a quintessential Test wicket, in that it starts by offering something for the quicks, then flattens out for the batsmen and then breaks up to allow the spinners in on the final couple of days. Its best batting conditions are days two and three and South Africa will enjoy the bulk of that time at the crease, against a Sri Lankan side that are three men down from the attack they would have wanted to present. There can't be many better situations in which to take advantage. Or many worse in which to rue your bad fortune, especially when the match, even first thing this morning, had been going Sri Lanka's way.
In the first hour, Sri Lanka completed their highest total in South Africa and might have expected to be fielding an attack to defend it, but Suranga Lakmal was ruled out of this match with a hamstring niggle, Dhananjaya de Silva will play no further part in the series after tearing a quadricep muscle on day one and Kasun Rajitha, who shared the new ball, left the field in the sixth over with what appeared to be a groin injury. That leaves Sri Lanka with two frontline quicks, a medium-pacer who would need to bowl more than originally planned in Shanaka, and one spinner, on debut. The expression on Mickey Arthur's face when he walked out of the change-room and into an emptier area of the ground to stew in his team's fortunes said it all.
In the circumstances, it's hard to be too critical of their bowling efforts. Even so, though they learnt from South Africa's mistake of bowling too short, they made the opposite error and overpitched early on, and Markram didn't need more of an invitation to unfurl the drive. With the confidence of his domestic form, his timing and placement were perfect. Markram also provides a foil for Elgar, who needs some time to settle in but, when he does, tends to stick around. That's what Markram will want to do next time. His mistake today was going for one big shot too many, and it's a mistake that can be rectified.
As for Elgar, it's still a long time coming. A year and a quarter. That's the last time he scored a hundred, and the last match in which any South African did, in a losing cause in India.
Elgar's dismissal may sting more than Markram's because he worked harder and longer and got closer to a hundred. He was also fed too many balls on the pads, especially for a player who is so strong off his legs. Almost three-quarters of his runs (71 of 95) came on the on side and a less frazzled Sri Lanka may have been able to plan better to prevent that.
Like South Africa, they are dealing with some inexperience. Lahiru Kumara is their senior seamer in this Test, with 20 caps, while Shanaka and Vishwa Fernando have played a combined 11 Tests. Their biggest concern is that Hasaranga is on debut and de Silva's injury means there's no back-up for him. And like Lutho Sipamla, Hasaranga gave away too many freebies. Sipamla came back from that with more control in his later spells on the first day and mopped up the tail towards the end of the first hour on the second. Hasaranga too, had moments of redemption.
After what may have felt like a long time but was really just a few hours, he produced a beauty of a ball, a topspinner with extra bounce, that took Quinton de Kock's edge and cemented what proved to be a significant mini-collapse. Sri Lanka claimed 3 for 20 midway through the final session to leave South Africa jittery, especially because it has been the longest time for Temba Bavuma. Almost five years. That's the last, and only, time he scored a Test century. Since then, he has been dropped, recalled and at the centre of transformation wars and the captaincy conversation. There is a lot of pressure and expectation on him to put numbers on the board, and so far, he is doing his bit.
Bavuma saw out the third day with Faf du Plessis and showed good energy in keeping the run-rate above four an over, an important point because Bavuma has previously been criticised for batting too slowly. His own strike rate hovers above 50, which may become less important if he improves his conversion rate, and even less important if he takes South Africa within touching distance of Sri Lanka's score. Getting anywhere near 400 has also been a long time coming.
South Africa had not topped 300 once, in any format, since Mark Boucher's coaching tenure began in 2019. Before this match, the most they'd managed was 291 in an ODI against Australia, and in a Test match, 284, a year ago almost to the day in their most recent victory against England on this very ground. Perhaps we can say winning has been a long time coming for South Africa too, but there's three more days and much more cricket to play before we can have that conversation.