Cardiff: Alex Hales kept his nerve with 58 not out to see England home and square the international T20 series against India 1-1 with one to play in Cardiff on Friday.
Set 149 to win off their 20 overs England needed 12 off the final over and Hales put Bhuvneshwar Kumar out of the Cardiff ground off the first ball and the second for four.
A single followed and David Willey hit Kumar for the winning runs to set up the decider on Monday.
Hales made his runs from 41 balls with four fours and three sixes to get his side over the line when they were faltering.
England's big hitters at the top of the order Jos Buttler and Jason Roy were both out cheaply trying to get the early run rate up to Umesh Yadav.
Roy made 15 and Buttler just 14 before they were both dismissed by Umesh Yadav but Hales kept England in the game.
He had struggled against the Indian spinners in the opening game in Manchester but played with more confidence here and Kuldeep Yadav who took five for 24 in the first game went wicketless.
Jonny Bairstow launched him into the stands twice in his final over but the England man fell short when he holed out to Yadav off Kumar. When Bairstow departed the hosts were still 23 short of their target with three overs left.
Liam Plunkett and David Willey had put the squeeze on India as the tourists were restricted to 148-5.
Plunkett took 1-17 and Willey 1-18 as India were kept on a leash despite 47 from captain Virat Kohli and some late hitting from MS Dhoni who scored 32 not out and helped plunder 22 in Jake Ball's final over
England put India in, and Plunkett responded with the most economical four over figures by an England bowler in a home T20 international.
And Willey leaked just one run more in his stint and picked up Kohli's wicket, caught in the deep by Joe Root, when the Indian captain was threatening to cut loose.
Ball, the Nottinghamshire pace bowler, was handed a T20 international debut and made the most of his chance by taking a wicket in his first over but his figures suffered at the hands of Dhoni.
Ball tempted opener Rohit Sharma into pull shot which he top edged leaving keeper Jos Buttler to take an easy skied chance.
Shikhar Dhawan was run out when he dropped his bat and failed to get his foot over the crease and Plunkett bowled KL Rahul to leave the tourists reeling at 22-3 before Kohli set about rebuilding the innings.
Dhawan was dismissed by Jason Roy's throw and quick-thinking by England captain Eoin Morgan who referred the decision to the TV umpire and was proved correct.
Ball, who has 18 caps in 50 over internationals, replaced Moeen Ali in the England line-up with England leaving the spinner out because of the relatively short straight boundaries.
The series concludes with the third T20 game in Bristol on Sunday before three 50-over internationals and a five-match Test series....