South Africa finished day one of the second Test against Pakistan in a commanding position after centuries from Ryan Rickelton and Temba Bavuma.

Pakistan took three wickets in the first session on Friday, yet the day belonged to South Africa thanks to a brilliant 235-run partnership between Rickelton and Proteas captain Bavuma.

While Bavuma's knock of 107 came to an end late in the day, his partner in crime Rickelton was still at the crease, on 176 not out, by stumps, which South Africa reached at 316-4.

A steady South Africa start threatened to be derailed when they lost three wickets inside eight overs.

Aiden Markram edged behind from Khurram Shahzad on 17, before Wiaan Mulder (five) Tristan Stubbs (0) found Mohammad Rizwan's gloves from the deliveries of Mohammad Abbas and Salman Agha respectively, leaving South Africa on 72-3.

Yet the Proteas had reached 307 by the time Bavuma edged Salman (2-55) to Rizwan, though Rickelton and David Bedingham (four not out) ensured there would be no further damage before the close of play on a day in which Pakistan also lost Saim Ayub to a match-ending ankle injury.

Data Debrief: Nice day out at Newlands

It was just about as good a day as you can get for Rickelton, whose knock so far has included 21 fours and one six. He was promoted to opener in Tony de Zorzi's absence due to injury, and made the most of his opportunity.

Rickelton only managed eight runs across both innings in the first Test, but has now brought up his second ton in the longest format, and is closing in on his first double-century.

Bavuma, meanwhile, has four Test hundreds to his name, while he is unbeaten in all six home Tests as South Africa skipper, and has made an excellent start when it comes to trying to extend that record. Only Shaun Pollock (W10 D3) has made more appearances in the country as captain in the history of the format without losing.