Cape Town - Dom Sibley and Joe Denly stretched England's lead on an attritional third afternoon of the second Test against South Africa at Newlands on Sunday after James Anderson had polished off the home side's first innnings in the morning.
England were 109 for two in their second innings at tea, an overall lead of 155 runs.
Sibley and Denly put on 73 for the second wicket before Denly was out for 31 when he hooked a short-pitched ball from Anrich Nortje and was caught by Dwaine Pretorius at fine leg.
It was slow going, with the partnership taking up 33 overs, but it consolidated England's advantage on a pitch where batsmen have struggled to bat fluently.
Denly faced 111 balls, while Sibley was unbeaten on 44 off 127 deliveries at tea.
Anderson completed a five-wicket haul and Ben Stokes set an England catching record at the start of the day when South Africa were bowled out for 223, giving England a first innings lead of 46.
Anderson took both South Africa's remaining wickets as the hosts were bowled out for 223, adding only eight runs to their overnight total.
Stokes set an England Test record for a fielder when he held his fifth catch of the innings to dismiss last batsman Nortje off Anderson's bowling.
Zak Crawley made a quick 25 before he was caught behind off Kagiso Rabada but Sibley and Denly settled in and batted through most of the afternoon with the South African bowlers unable to find as much assistance from the pitch as England managed on Saturday.
Only 57 runs were scored off 28 overs between lunch and tea for the loss of Denly's wicket.
Anderson completed the 28th five-wicket haul of his Test career. He struck with the first ball of the day when Rabada was caught behind.
It put Anderson on a hat-trick after finishing the second day with the wicket of Keshav Maharaj. Nortje survived but four overs later edged a drive to give Stokes his fifth catch, all held at second slip.
It was the first time in 1,020 Test matches that an England fielder held five catches. There had been 23 instances of four catches in an innings, most recently by England captain Joe Root against Ireland at Lord's last year.
Stokes equalled the world Test record of five catches, which had been achieved 11 times previously, most recently by Steve Smith of Australia in 2017/18, also at Newlands.