South Africa will have to chase a daunting 203 to beat England at the Wanderers after England captain Paul Collingwood (57) and Eion Morgan (85) put the tourists in control.
England were put into bat by Graeme Smith and were soon on the back foot losing opener Joe Denly to the very first ball of the game trapped LBW by Charl Langeveldt.
Alistair Cook and Jonathan Trott started England's recovery scoring 25 runs before Cook, who had almost missed the game through illness was trapped LBW by Ryan McLaren.
Trott, playing his first game in South Africa since switching allegiances to England departed for 33 before Morgan joined Collingwood at the crease.
Their partnership of 98 took the game away from South Africa as England took control.
Collingwood departed for 57 from just 32 balls in the 16th over. With the wickets of Luke Wright and Matt Prior falling cheaply it was left to Morgan to set South Africa a big total.