Bell will have silenced some of his critics with his century [AFP]

England put themselves within four wickets of winning the second Test against South Africa in Durban after ripping through the hosts' top order before bad light stopped play for the third time in four days.

South Africa trail by 156 runs going into the fifth and final day after reaching 76-6.

Graham Swann and Stuart Broad took three wickets each for England in a stunning afternoon spell, with paceman Broad setting himself up for a hat-trick ball after removing AB de Villiers and JP Duminy in successive deliveries before Mark Boucher fended away the third.

Broad had earlier claimed the wicket of Jacques Kallis for three.

Swann scalps

Spinner Swann followed his four scalps in the first innings with another three wickets on Tuesday afternoon, with Ashwell Prince being caught at silly mid on by Ian Bell, Hashim Amla being bowled through the gate and captain Graeme Smith also being trapped in front.

Day four scorecard

South Africa first innings 343
England first innings 575-9 dec

South Africa second innings
A Prince c Bell b Swann 16
G Smith lbw b Swann 22
H Amla b Swann 6
J Kallis b Broad 3
A de Villiers lbw b Broad 2
JP Duminy b Broad 0
M Boucher not out 20
M Morkel not out 7
Extras 0

Total (for 6; 32 overs) 76
FoW 1-27 2-37 3-40 4-44 5-44 6-50

Earlier England had coasted to 575-9 declared, with under-fire number six Bell stroking 141 to silence at least some of those unhappy with a run of low scores.

It followed opener Alastair Cook's 118 the previous day.

Matt Prior smashed 60 on day four before being bowled by Duminy, while Bell eventually fell to Dale Steyn caught by Boucher at slip.

Bell, whose place as a number six batsmen had been questioned because it left England with only four specialist bowlers, justified the confidence shown in him by the team management with a composed innings.

After posting his fifty off 65 balls on Monday, Bell was more  circumspect on day four, reaching his ninth Test century off 172 deliveries when he went down the pitch and lofted Harris over mid-on for his eighth four. He also hit a six.

It was Bell's first Test century since he made 199 against South Africa at Lord's in July 2008.

England went on the attack immediately after lunch, adding 62 runs for the loss of three wickets in nine overs before Andrew Strauss declared.

Batsman Paul Collingwood, who made 91 on Monday, dislocated his left index finger during fielding practice before play.

He was sent for x-rays which revealed no fracture. He did not field at the start of the South African second innings.

Source: Al Jazeera and agencies