Amla scored an unbeaten 157 as the hosts closed the third day on 353-3, still 276 runs behind but with a foothold in the match after England had piled up a massive 629 for six declared.
Amla, whose captaincy has been criticised after a year of poor results for the top-ranked test nation, scored his first hundred in 13 months and batted through a day on which England took only one wicket, AB de Villiers for 88.
Faf du Plessis was 51 not out at the close, his first half-century in 12 innings.
“Losing just one wicket in the day is a huge success for us and we hope that it’s a turning point,” Du Plessis told reporters.
Monday’s play had none of the fireworks of the previous day when Ben Stokes and Jonny Bairstow shared a stroke-laden record-breaking partnership of 399 for England, who lead the series 1-0.
South Africa forced the touring side to toil in hot conditions and will seek to keep them in the field again for much longer to try to save the match.
De Villiers reached 8,000 test runs before he pulled a short ball from Steven Finn to James Anderson at mid-wicket just before tea.
The South Africans batted with much circumspection and were grindingly pedestrian at times but did offer chances.
Amla was twice dropped — by Joe Root on 76 and Nick Compton on 120 — and De Villiers survived an lbw appeal after asking for a review, which showed he got a slight nick to a Ben Stokes delivery.
“They were tricky chances, it was not easy to see the ball against the backdrop of the crowd,” Finn said.
“We just need to keep playing attritional cricket.”
De Villiers became the third South African batsman to pass 8,000 runs when he reached his half-century while Amla, who last made a significant contribution with 208 runs against the West Indies in December 2014, moved past 7,000 runs when he went to 100 in the first over after lunch.
The 31-year-old De Villiers trails only Jacques Kallis (13,206) and Graeme Smith (9,253) on the list of South Africa’s all-time highest run-scorers.
England bowled good lines and with spells of aggression on a Newlands pitch that offered little assistance and in searing temperatures of over 30 degrees Celsius with more energy-sapping heat forecast for Tuesday.