AB de Villiers and Jacques Kallis hit centuries before South Africa declared on the fifth afternoon of the fifth and final Test at SuperSport Park yesterday, setting England to make 185 to win in 44 overs.
But England, chasing 185 off 44 overs to win, lost Andrew Strauss for a duck to make it 0-1 in the second over.
The left-hander edged to second slip, making way for Robert Key.
South Africa need a win to square the series while a draw will give England a 2-1 win.
De Villiers, 20, made 109, his maiden Test century, while Kallis, South Africa's top scorer in the series, finished unbeaten on 136 before South African captain Graeme Smith declared on 296 for six.
De Villiers and Kallis scored freely on the final morning, enabling Smith to make at least a token attempt to win the match.
South Africa added 237 runs in 54 overs yesterday to back up Smith's claim that his team would "give it our all" in an effort to force a result in a match affected by rain.
De Villiers and Kallis put on 227 for the third wicket in 224 minutes off 324 balls.
After making 92 in the first innings, De Villiers became the third youngest South African to make a Test century, after Graeme Pollock and Tuppy Owen-Smith.
De Villiers and Kallis both took 164 balls to reach their hundreds. It was Kallis' 20th Test century, just one short of the South African Test record.
South Africa started their second innings with a deficit of 112 but De Villiers took them into the lead when he pulled Matthew Hoggard for six. At that stage 84 overs remained.
De Villiers was caught at third man soon after posting his century and South Africa lost two more wickets before the declaration.
Kallis took his total of runs in the series to 625.
Flintoff goes home
Meanwhile, England all-rounder Andrew Flintoff has been withdrawn from the one-day international series against South Africa to undergo surgery on a long-standing ankle injury.
The England and Wales Cricket Board replaced him with seamer Matthew Hoggard yesterday for the seven-match one-day series starting on Sunday.