England survived a scare at the hands of qualifiers Afghanistan to boost their ICC World Twenty20 semi-final hopes with a 15-run victory in Delhi.
Having won the toss, Eoin Morgan's side slipped to a desperate 57 for six after losing five wickets for just 15 runs on a slow Feroz Shah Kotla pitch that was hosting its first Twenty20 international.
David Willey strode to the crease to join Moeen Ali at 85 for seven and the eighth-wicket pair revived the innings by smashing 57 in just 33 balls, taking 44 runs from the final three overs, to propel England to a competitive 142 for seven.
That partnership transformed England's fortunes and a dominant bowling performance followed, led by Willey, to ensure they claimed a second successive Group 1 win ahead of their final game against Sri Lanka on Saturday.
Left-arm seamer Willey took wickets in his first two overs, including dangerman Mohammad Shahzad, while Adil Rashid struck twice and Liam Plunkett conceded only 12 runs from his full allocation on his return to the XI.
The associate nation took the game down to the death courtesy of a late unbeaten 35 from Shafiqullah, although 24 off the final over proved beyond him and the Afghans were restricted to 127 for nine.
It was Moeen and Willey's contributions with the bat, unbeaten scores of 41 and 20 respectively, that proved vital after England failed to adapt to a surface that was slower than the previous two they operated on at Mumbai's Wankhede Stadium.
Jason Roy struggled for timing early on, departing for five when missing a Hamza Hotak quicker delivery, but James Vince - who replaced the injured Alex Hales - and Joe Root hit some eye-catching boundaries.
That was until Mohammad Nabi was introduced and the off-spinner's first over brought three wickets to leave England 42 for four at the end of the powerplay.
Vince provided a return catch, Morgan was bowled shouldering arms to his first delivery and Root was run out following a mix-up with Ben Stokes, Nabi having the presence of mind to whip out a stump after breaking the bails before gathering the ball.
Stokes was then bowled via an inside edge, attempting to replicate a pull that earlier brought him four, and Nabi pulled off a brilliant catch diving to his left at cover to give Samiullah Shenwari the scalp of Jos Buttler.
Moeen and Chris Jordan consolidated for 5.1 overs, adding 28, until the latter provided a return catch to Rashid Khan.
Moeen and Willey took the score to 98 for seven after 17 overs before cutting loose, hitting three fours and three sixes to blunt Afghanistan.
Willey then ensured momentum swung back in England's favour by trapping Shahzad lbw with his third ball and having Gulbadin Naib caught at cover, after skipper Asghar Stanikzai edged Jordan to slip in the second over.
Plunkett delivered a maiden to Khan, the first of four economical overs after replacing Reece Topley, before Moeen and Rashid struck with their fifth balls to leave Afghanistan 39 for five.
Rashid collected a second scalp when Nabi, having hit a six the ball after Buttler dropped a catch, holed out to wide long-on.
After Najibullah Zadran, Shenwari and Hamza departed, Shafiqullah tried in vain to fire his side to an unlikely win with four fours and two sixes but 35 from the last 12 balls was too much.