South Africa 196 for 5 (De Villiers 69, Amla 56) beat England (Hales 38, Parnell 3-31) by three runs
Scorecard and ball-by-ball details

AB de Villiers returned to South Africa's Twenty20 captaincy in inspirational fashion by producing his country's fastest fifty and assuring his side of a place in the semi-finals of World T20. England were eliminated, foundering in the face of the biggest total of the tournament, their batsmen never really threatening to win it but doing well to take the game so close.

The highest successful chase against South Africa in any T20 was only 169, by New Zealand in East London, the additional 28 runs needed here a powerful indication of England's task. It did not matter how decent the pitch, how much a wet ball hampered the bowlers or skidded past the fielders, this was a demand too far for an England batting side that had already rescued victory against Sri Lanka and could not quite find a repeat.

As for De Villiers, he can rarely have looked more combative. Forced to assume the captaincy because of a one-game ban for Faf du Plessis for over-rate violations, he lost the toss but hardly put a foot wrong after that. His half-century came in 23 balls, in all he made 69 not out from 28, dropped only once, in the final over, when Moeen Ali seemed to lose the ball momentarily in the floodlights.

South Africa, who lost headway in the third quarter of the innings, racked up 55 from the last three overs, with de Villiers' innings increasingly characterised by decisive moves across his stumps and flays through the leg side. Bowlers, stringently punished for too much width, were not blessed with options.

South Africa had not just been disrupted by du Plessis's absence, Wayne Parnell had also been summoned by a Mumbai court with the tournament in full swing to answer drug-related charges occurring during his 2012 IPL campaign. "Unfortunate, but we must respect the law," had been South Africa's measured response, but they will have delighted at how Parnell returned with figures of 3 for 31, and no allegations of artificial stimulation in sight. Alex Hales and Moeen Ali were dismissed in successive balls.

Hales, who had registered England's first T20 hundred in the victory against Sri Lanka, had attacked the huge target with a stately disdain, reaching 38 from 22 balls before slicing to deep cover. By the time that Eoin Morgan fell cutting Imran Tahir, England were sorely in need of a big over. They found it with 17 off an over from Beuran Hendricks, Buttler's straight six beginning to find its range, but his reverse sweep against Tahir fell obligingly to Albie Morkel at backward point.

Tahir's return of 2 for 27 was a masterly display of legspin in defiance of the wet ball. Morkel dislocated a finger in taking the catch and his yelp of pain minutes later as the physio popped it back in the viewing area was not quite drowned out by South Africa's excited anticipation of an impending victory.

England were ahead of South Africa's rate almost throughout their innings, but they lacked for a de Villiers finale. Suitably, their chase was all but lost with the captain's running catch from mid off to dismiss Chris Jordan. Ravi Bopara clipped the rate to 22 off the final over, but the bowler was Steyn, with a fearsome Mohican haircut to boot, Bopara mis-hit his first ball skywards and that was about that.

The match was billed, essentially, as a quarterfinal, although that assessment was slightly insulting to Netherlands as it assumed England would beat them in their final match. As likely as that might be, Netherlands have had their moments in Bangladesh.

For all de Villiers' brilliance, and all the closeness of the result, it was an unsatisfying, disjointed affair, the impetus of the game disturbed by two brief floodlight failures in South Africa's innings and periodic ball changes and outfield drying on another humid, dew-ridden night. The saving grace was that the ball came onto the bat so the cricket, when it happened, was entertaining, but it all took more than four hours to conclude.

England's focus will rest on an accident-prone over from Jade Dernbach, the 18th, which cost 26 and gave South Africa the propulsion they needed. He began badly with two overpitched gifts for David Miller, almost had Miller caught down the leg side by Buttler, bowled a beamer with a wet ball (the ball was immediately changed), delivered three wides, one of which de Villiers made contact with but was wrongly called by umpire Rod Tucker. To round things off, a slower ball was planted out of the ground by de Villiers to bring up his fifty.

South Africa's other innings of note came from Hashim Amla. Extraordinarily, it was his first T20I half-century in his 25th match. For England, who still have memories of his serene Test triple-century at The Oval two years ago, the statistic was impossible to comprehend.

Buttler rued it more than most. There had been over-excitable talk in England that he might even press for a Test wicketkeeping spot this summer if Matt Prior did not rediscover his form of old. For all Buttler's promise, such talk is premature. He missed a simple stumping off Moeen Ali, who drew Amla down the pitch and beat his attempted whip over long on, only for Buttler to fumble the opportunity.

As Amla already had 19 from 12 balls, having flicked Dernbach imperiously over square leg for six, Buttler needed no elucidation on his error, but he got one anyway as Amla repeated the shot, this time perfectly, and plopped the ball into the crowd. By the time Amla swung Stuart Broad to deep midwicket, South Africa's opening stand was worth 90 in 10.5 overs. Buttler gained some recompense by stumping Quinton de Kock.

Duminy's exit was careless; comical even. He hacked Jordan into the leg side where the catch fell short of Ravi Bopara, but Bopara threw swiftly to the keeper's end and Duminy, who had dropped his bat as he evaded Jordan while turning for a second, was a yard short as he dived hopelessly for the crease. De Villiers was at the other end though, and his defining innings had barely begun.