The uncapped Keegan Petersen has been called into South Africa's squad for the second Test against England in Cape Town as a replacement for the injured Aiden Markram.

Petersen, 26, plays his domestic cricket for the Knights and averages 41 with the bat from 88 first-class matches.

After making a century for South Africa A against England prior to the first Test at Centurion, he has now earned a first call-up to the Proteas senior side with Markram having been ruled out of the series.

In a press release announcing Petersen's addition to the squad, Cricket South Africa acknowledged the batsman's "consistently good performances in the CSA domestic franchise four-day series over an extended period of time".

Markram fractured a finger on his left hand on day two of the ongoing first Test and is set to undergo surgery next week.