Dhoni struck a 31-ball 35 not out and figured in an unbroken 65-run stand with Ravindra Jadeja (26), striking two consecutive fours off the last over by pace bowler Tim Bresnan as India reached 300-5 off 49.2 overs in reply to England´s 298-4 in 50 overs. [break]
Coming in to bat when the game was delicately poised at 217-4 in the 39th over, Dhoni kept his cool to seal the win for a team which is without several top players including Sachin Tendulkar, Virender Sehwag, Yuvraj Singh and Zaheer Khan.
Earlier, Ajinkya Rahane struck a solid 91 in a 104-ball knock during which he hit six fours before being foxed by a slower one from pace bowler Steven Finn to give a catch to captain Alastair Cook at mid off.
Rahane chipped and cut the ball in style but slowed down in his 80s even as the team came under pressure with the dismissal of Gautam Gambhir, who struck a second successive half-century.
The left-hander made a 60-ball 58 that included three fours and a six off spinner Graeme Swann that took him to his 26th one-day half-century in 117 games.
He was out to a superb catch by Kevin Pietersen who ran backward from short cover.
"The way Rahane batted along with Gambhir was crucial," Dhoni said. "We lost wickets at the wrong time though and we had to get another partnership going."
Virat Kohli (35), dropped by wicketkeeper Craig Kieswetter off pace bowler Jade Dernbach when he went for a hook on four, kept India in the hunt in the mid overs.
Kieswetter had a forgettable day behind the stumps as he also let off Gambhir once and then handed a reprieve to Jadeja in the closing overs as he dislodged the stumps with his feet before whipping the bails off.
Earlier, Jonathan Trott struck an unbeaten 98 to help England set a challenging 299-run target after electing to bat.
The number three batsman struck eight fours off 116 balls as England looked to keep alive the five-game series after comprehensive losses in Hyderabad and New Delhi.
Samit Patel (70 not out), Pietersen (64) and Kieswetter (36) were the others to ensure a fine total.
Trott missed out on a fourth one-day century as most of the deliveries toward the end of the innings were faced by Patel, with whom Trott shared in a 97-run unbroken stand for the fifth wicket.
Patel, who used his feet well against both fast and slow bowlers, smashed seven fours and two sixes during his 43-ball cameo.
Trott, who scored his 15th one-day half-century in 38 games, had earlier partnered in a 101-run stand for the third wicket dominated by Pietersen.
Pietersen completed his 23rd half-century in 122 one-dayers, scoring 64 off 60 deliveries with nine fours. He was adjudged lbw off left-arm spinner Jadeja when he had stretched a long way forward.
Kieswetter too had promised a bigger knock but perished for a 38-ball 36 after unleashing two sixes off India´s new-ball bowlers. He moved out of the crease and heaved Praveen Kumar over the deep-wicket fence before slashing Vinay Kumar over third-man.
But Kieswetter inside-edged a yorker-length delivery from seam bowler Virat Kohli to give India its second wicket after Cook had been trapped lbw by Vinay Kumar for three.
"Our fielding has been slightly below par, which is unusual for us, and today it cost us 20 to 25 runs in the field," Cook said. "Six an over is always a tough chase but credit to the way Dhoni and Jadeja finished that off."
The next game will be played in Mumbai on Sunday while the final match of the series will be played in Kolkata on Tuesday.
The tour winds up with a solitary Twenty20 game in Kolkata on Oct. 29.
India beats England in 3rd test, leads series 2-0