PORT ELIZABETH: Fast bowler James Anderson wrecked South Africa's batting order with a career-best performance as England won the fourth one-day international by seven wickets at St George's Park on Sunday.

The win gave England an unbeatable 2-1 lead in the series. The final match will be played in Durban on Friday.

Anderson took five for 23 as South Africa were bowled out for 119, their lowest total in a one-day international in their own country.

Jonathan Trott and England captain Andrew Strauss put on 74 for the first wicket before England suffered a wobble when three wickets fell for nine runs.

But the tourists cruised to victory with 18.4 overs to spare with Trott finishing with 52 not out.

It was a remarkable turnaround for England, who conceded 354 runs when they lost the third international by 112 runs in Cape Town two days earlier.

South African captain Graeme Smith was dismissed by Stuart Broad off the eighth ball of the match and his side were unable to recover.

Smith gambled by batting first in overcast conditions on a pitch with slightly more grass than usual and the early loss of their leading batsmen exposed a lengthy tail.

England's bowling was accurate and the South Africans failed to adapt to a slower pitch than that on which they prospered in Cape Town.

Anderson bowled superbly in two spells and benefitted from bold captaincy by Strauss. After a first spell of two for 17 in six overs, Strauss brought back his strike bowler in the 21st over to press home his side's advantage.

Anderson responded by taking three more wickets and had completed his stint by the end of the 27th over. By then, South Africa had lost seven wickets for 85 runs.

Tim Bresnan provided excellent support for Anderson, taking one for 15 in an unbroken spell of eight overs. He took the key wicket of AB de Villiers, who made a century in Cape Town and was looking in good form until he was leg before to Bresnan for 22.

Alviro Petersen, the least experienced of the South African top order, was the only batsman to shine, making 51 off 79 balls before he was the last man out. It was Petersen's third successive half-century in the series.

Strauss survived a confident appeal for a catch behind off Morne Morkel when he was on 12 but otherwise he and Trott batted comfortably before Strauss fell to recalled off-spinner Johan Botha for 32.

Kevin Pietersen again failed to find his best form. He was dropped at long leg by Morne Morkel off Ryan McLaren before he had scored and made only three before he chipped Botha to midwicket.

Paul Collingwood failed for the first time in the series when he was caught behind off McLaren for two before Trott and Eoin Morgan took England to victory in an unbeaten stand of 38.