Cape Town: Dean Elgar and Rassie van der Dussen put on a century fourth-wicket stand for South Africa but England have taken charge of the second Test after reducing the home side to 215 for eight at the close of the second day at Newlands on Saturday.
South Africa trail by 54 runs on the first innings having bowled England out for 269 and will resume the third day with Vernon Philander (13 not out) and Kagiso Rabada (0 not out) at the crease.
England had the new ball in hand five overs from the end of play and will resume on day three in search of the wickets to quickly end the home side's innings with a handy lead.
The tourists made an excellent start with the ball and reduced South Africa to 40 for three.
Seamer Stuart Broad (2-36) had debutant opener Pieter Malan caught by Joe Root at first slip for five, while Zubayr Hamza (5) could only fend a delivery to Ben Stokes at second slip.
James Anderson (3-34) removed South Africa’s captain Faf du Plessis (1), also caught by Stokes, before Elgar and Van der Dussen's century stand steadied things for the home side.
Elgar has a reputation as a dogged accumulator of runs and played to type to score 88 from 180 balls, his 14th Test half-century to go with 12 hundreds.
He was out to an uncharacteristically loose shot though, caught by Joe Root as he tried to smash off-spinner Dominic Bess to the mid-off boundary.
The dangerous Quinton de Kock played a typically breezy 20 before he was out in similar fashion, though seamer Sam Curran (2-39) was the bowler and Anderson took the catch.
Van der Dussen's patient stay at the crease saw him reach 68 from 187 balls, before guiding Curran to Stokes at second slip.
Dwaine Pretorious also then steered an Anderson delivery to Stokes, a fourth catch for the all-rounder, before the seamer also claimed the scalp of Keshav Maharaj (4) off what proved the final ball of the day.
"We bowled really well as a unit and kept the run-rate down all day," Curran told reporters. "Hopefully we can get those two final wickets in the morning and then build a big lead with the bat.
"It is a pretty good wicket, there is a patch outside off stump doing something against the right-handers.
"Our main focus is just session by session."
England had resumed their first innings on 262 for nine at the start of the day but Anderson (4) was caught by Van der Dussen at first slip off Rabada (3-68). Ollie Pope finished the innings not out on 61.
Meanwhile, the tourists are hoping to have fast bowler Jofra Archer available for the third Test that starts in Port Elizabeth on January 16.
A second scan on an elbow injury that kept him out of the Cape Town Test revealed only bruising and swelling.
South Africa won the first Test in Pretoria by 107 runs.