After Petersen’s marathon innings ended in mid-afternoon, JP Duminy hit an unbeaten 48 as the last three wickets added 66 runs to put a further question mark against England’s decision to pick an all-seam attack and send South Africa in.
There was irony for England, when part-time off-spinner Kevin Pietersen took his side’s first wicket of the day after Petersen and Jacques Rudolph had batted most of the morning in a stubborn sixth wicket stand of 59.
England left out front-line spinner Graeme Swann, opting for four specialist seam bowlers. But the quick men could not make a breakthrough despite bowling accurately in overcast conditions.
Finally England captain Andrew Strauss tossed the ball to South African-born Pietersen, whose second ball spun sharply past the bat as the left-handed Rudolph stretched forward defensively.
Wicketkeeper Matt Prior whipped off the bails and television umpire Asad Rauf ruled that the batsman had not got part of his foot behind the line in time.
James Anderson and Stuart Broad sent down six successive maidens at the start of the day.
In the fifth over Petersen was given out leg before wicket to Anderson by umpire Steve Davis without adding to his overnight score of 124.
But, for the second time in his innings, he called for a review and was reprieved when replays showed the ball would have missed his leg stump.
Petersen went past his previous Test best of 156 against New Zealand in Wellington in March before he was caught behind off Stuart Broad after batting for 530 minutes. He faced 365 balls and hit 23 fours.