The second Test between the Proteas and India at Centurion has been evenly-poised throughout, but late on Tuesday a Lungi Ngidi -inspired moment of magic put the Proteas well ahead going into the final day.
The equation is simple: South Africa need 7 more wickets to win the series while India need another 252 runs to keep it alive.
At stumps, India were in trouble at 35/3.
Chasing 287 for victory, India had needed their captain Virat Kohli to repeat, or at least come close to repeating, his first-innings heroics.
Instead, Ngidi brought the house down at about 17:25 when he trapped India's leader LBW for 5.
India had fancied their chances on this tour and believed they would be the first of their kind to win a Test series in this country.
But with Kholi gone, it will now take a miracle to keep that dream alive.
Cheteshwar Pujara (11*) and Parthiv Patel (5*) are at the wicket for the visitors.
Ngidi, meanwhile, finished the day with 2/14 from his six overs as his encouraging start to Test cricket continues. He was so close to having Kohli out in similar fashion in the first innings, with a faint inside edge denying him, but this time the debutant had his moment in the Centurion sun.
Kohli's wicket was always going to be key, and now that it is in South Africa's back pocket, India will have to find another hero on Wednesday.
Kagiso Rabada (1/9) struck first for the hosts when he benefitted from a wicket that had displayed uneven bounce all day.
Murali Vijay should have gone forward to a delivery that was angling in, and when the ball stayed low he had no chance. Vijay was out bowled, and South Africa were away.
Opener Lokesh Rahul was next to go, becoming Ngidi's first victim when he slapped the 21-year-old to Keshav Maharaj at point.
That brought Kohli to the wicket, and the innings that was likely to decide this Test match began.
Ngidi had spoken after day two about Kohli shuffling across his stumps being a potential weakness in his game, and that would have made what happened on Tuesday so much sweeter.
Kohli moved across his stumps, as Ngidi had described two days earlier, and looked to work the ball onto the leg side. When he didn't make contact, it just looked out, and even a review could not save India's biggest weapon.
The South African innings had earlier been characterised by long periods of patient, cautious batting - particularly from skipper Faf du Plessis (48 off 141) - but that just highlighted the importance of every ball and how high the stakes have been throughout this contest.
There has been so little separating the sides at Centurion up until now.
South Africa had started the day on 90/2 with AB de Villiers (80) and Dean Elgar (61) at the wicket and keen to bat India out of the game.
Instead, they both fell before lunch, along with an out-of-sorts Quinton de Kock (12), before Du Plessis (48) and Philander (26) then put on a 156-ball partnership worth 46 runs.
The Proteas would have probably wanted a bit more than their 286-run lead, but when Du Plessis was out caught and bowled by Jasprit Bumrah, they had run out of batsmen.
That lead, though, looks more than enough at this stage.