South Africa 408 (Elgar 185, Jansen 84*, Bedingham 56, Bumrah 4-69) beat India 245 (Rahul 101, Rabada 5-59) and 131 (Kohli 76, Burger 4-33, Jansen 3-36) by an innings and 32 runs
A fast-forward Test match came to a fast-forward end as South Africa rolled India over inside three days to secure victory by an innings and 32 runs. And boy, did they have fun doing it.
Nandre Burger and his team-mates broke into a smile. He had found so much movement that the ball bypassed the wicketkeeper and ended up in the hands of first slip. India had spent 108.4 overs searching for help like that.
Wiaan Mulder threw his head into the turf. He thought he had dropped Virat Kohli. But really what happened was the ball had moved so sharply it beat the leading edge as the batter tried to play a flick shot and bounced off his thigh towards first slip.
Centurion was alive.
India, meanwhile, were barely holding on. It is unclear if SammyB on the ESPNcricinfo commentary feedback is South African but he nailed the mood when he said, "The high-pitched horror movie scream at 8.4 was quite something." That was Shubman Gill, by the way, in pure panic as he tried to convince Kohli not to take a risky single.
India's batting lasted a mere 34.1 overs on Thursday and featured nine single-digit scores. That in a way highlighted just how poorly they had bowled, letting just one man outscore their second-innings total.
So how did it happen? Why was there such a gulf? Well, once again, it had a lot to do with the pitch - it never died down, there was always help on offer - and the profile of the two teams' fast bowlers.
Early on, it was the good-length ball that was creating the most problems. Now, after two days of wear and tear and some excellent morning sunshine, it had shifted to back of good length, where cracks and divots were starting to form. Landing the ball there was creating variable bounce.
South Africa had an attack better suited to exploit it. Higher release points. Better pace. And perhaps most importantly a lot of rest. Dean Elgar's 185 and Marco Jansen's 84 not out had ensured they were extremely fresh when it was their turn to bowl in the evening and they did not disappoint.
Kohli did his best to keep them at bay, scoring a 76 off 82 balls, but he was always fighting a rising tide.
Kagiso Rabada was transcendent, finishing with match figures of 7 for 91 and at least three of those wickets were the result of unplayable deliveries. One of them set the tone for India's collapse.
Rohit Sharma saw a ball that was angled into him. So he played for that, presenting the full face and doing so quite well. Except it wasn't enough. Rabada had gone wobble-seam and made it impossible to deal with by hitting the in-between length and a had-to-play line. Rohit had to come forward but had no hope of reaching the pitch of the ball. He also couldn't account for the way it moved because until it pitched - two or three metres in front of him - it was travelling down a straight line.
That's the thing with seam movement. It's late and it's deadly. Rabada generated enough to beat the full face of Rohit's bat but not so much that it would miss his stumps.
Burger, meanwhile, kept hitting that troublesome back-of-good-length consistently and was rewarded with four wickets, two of which were the result of batters unsuccessfully trying to leave the ball because it was bouncing all over the place. There were times when India were bowling that it seemed like the pitch had settled, but that was essentially because they are visitors to this land, they were tired, with too many overs in their legs. It had been five months since they played Test cricket. It was only natural that they wouldn't be able to acclimatise as well as their hosts did.
Case in point was Prasidh Krishna's performance. He was selected ostensibly to be their hit-the-deck bowler. But a guy making his Test debut in conditions he has never played in with only 12 first-class games to back him up will struggle more often than not. The other debutant fared better because he knows how to bowl here. And that was the difference. Simple home advantage.
Also, India were stuck trying to remove a set batter with an older and, therefore, softer and less responsive ball. South Africa had a brand new one and they made it count. It helped that they had a sizeable first-innings lead as well - 163 - built by batters who made sure they took every opportunity to hit boundaries.
Even their allrounders were tuned into that plan. Jansen, who has been low on confidence as a bowler, played a glorious innings, the highlight of which were his drives down the ground, which once again is a sign that India were targeting the wrong areas. They strayed too full too often and Jansen punished them every time. He was on course for a maiden first-class century when he started running out of partners. In the end, he was left stranded because Temba Bavuma's hamstring wouldn't let him come out and give support. It was perhaps the only thing that disappointed the home crowd over the course of the last three days. They've been spoiled.