England ran into resistance from Quinton de Kock on a rainy Saturday as the tourists set their sights on a big first-innings lead over South Africa and a pivotal victory in the third test.
England, having racked up 499-9 declared on day two in its first innings for its best-ever test total in Port Elizabeth, had South Africa 208-6 at stumps on day 3 in its reply. That's still a hefty 291 runs behind, despite de Kock's stubborn 63 not out.
Dom Bess spun out South Africa's top order with the first five wickets of the innings and only de Kock, stubborn nightwatchman Anrich Nortje, and a 3 1/2-hour spell of rain slowed England's progress in what might be the series-defining match.
There was also the surprising side story of Ben Stokes, England's star allrounder and the recently crowned world player of the year, dropping de Kock three times.
South Africa needs to get to 300 just to avoid the follow on.
The series is level at 1-1 but is now leaning heavily in England's favor with just one more test in Johannesburg to come after this one. Victory in Port Elizabeth for England would put it on the brink of a second straight series win in South Africa and an impressive overseas achievement for Joe Root's young team.
Offspinner Bess is one of those youngsters. He took the first two South African wickets the day before and had another damaging spell in the morning on Saturday, removing opener Dean Elgar (35) and South Africa captain Faf du Plessis (8) in successive overs.
He also won a contest with Rassie van der Dussen, who he bowled for 24 off a bottom edge just before the rain started to fall 13 minutes ahead of lunch. That gave Bess career-best figures of 5-41 at the time and the English players skipped off in the drizzle for an early lunch.
The 22-year-old Bess, playing just his fourth test, became the first England spinner to take the first five wickets in a test since Derek Underwood against Australia in 1975. He ended the day with 5-51.
South Africa found its fight through de Kock when the rain stopped late in the afternoon.
He was still there at stumps and the only South African batsman to challenge England's superiority. He was helped initially by Nortje, the tailender who arrived late on Friday evening as a nightwatchman and nearly batted through the entire following day. Nortje also was dropped by England - twice. The first was an easy chance for Root at slip. The second miss was very tough at short leg.
Nortje faced 136 balls for his 18 runs and he and de Kock put on 45 before Stokes came on to end their stand. England's brilliant allrounder, who made 120 with the bat on Friday, forced an outside edge from Nortje to Root at slip to answer his captain's call.
But Stokes was also guilty of letting de Kock off three times, with all his dropped catches at slip off spin bowlers. The first two misses were off the bowling of Root.
First, Stokes let a low chance slip through his hands when de Kock was on 30. Then he got hands to but couldn't hold onto a high edge just after de Kock had passed 50.
Stokes' last error came off Joe Denly's bowling right at the end of the day when he couldn't hold on with one hand down low to his right.
De Kock hit nine fours amid all his let-offs to avert a complete crisis for South Africa, which was 109-5 when he arrived. Vernon Philander was with him on 27 not out at stumps. Their stand was worth 54 and had the feeling of a last stand for South Africa with no more specialist batsmen to come.
South Africa began the day on 60-2 and was back in trouble almost immediately.
Bess broke through when Elgar popped a catch to close fielder Ollie Pope, who dived forward to take it one-handed.
Bess then dismissed du Plessis in his next over. South Africa's captain is under heavy pressure for the team's and his own personal poor form and skipped down the pitch and hit Bess for successive fours at the start of his innings in an attempt to make a statement.
Bess reasserted England's control straight away, removing him two balls later via another close-in catch by Pope.
England erupted in celebration and du Plessis ripped off his gloves as he walked back.