Joe Root scored his 12th one-day international hundred as England beat India by 86 runs at Lord’s to level the series at 1-1.
Having endured a difficult start to the summer, Root's century was his first since March in any form of cricket and draws him level with Marcus Trescothick as England's record century-maker in ODIs.
The Test skipper shared crucial stands with Eoin Morgan (53) and David Willey (50no) as England posted 322-7.
Three quick wickets saw India lose all impetus in their chase and they were eventually bowled out for 236, no batsman passing 50 and Liam Plunkett taking 4-46 as England forced a series decider, at Headingley on Tuesday.
Having opted to bat first, England's innings threatened to go the same way as it did in the series opener in Nottingham as Jason Roy and Jonny Bairstow got them off to a bright start before Kuldeep Yadav came on to break the stand and halted the hosts' momentum.
The difference here was England's positive intent against the left-arm wrist-spinner. Bairstow (38) was highly unfortunate to see the ball deflect off his pad, onto his gloves and then back onto the stumps as he tried to sweep before Roy (40) nailed his own sweep shot, only to pick out Umesh Yadav at deep midwicket.
That considered aggression continued with Root and Morgan and without taking any significant risks both players passed fifty and the stand reached 103 before it was broken by a familiar foe.
Kuldeep (3-68) was reintroduced by Virat Kohli to find a wicket but it is unlikely the India skipper foresaw a thigh-high full toss doing the trick, Morgan failing to make a clean connection and finding Shikhar Dhawan on the rope.
From 189-2 prior to Morgan's dismissal in the 31st over, England had slumped to 239-6 in the 42nd when Willey arrived at the crease; Ben Stokes (five), Jos Buttler (four) and Moeen Ali (13) all falling cheaply.
Root remained as composed as he had been throughout but was made to wait to reach his hundred as Willey dominated the strike as well as the Indian bowlers in the closing stages.
Root (113) eventually got to three figures in the 48th over and once the celebrations were over, he launched Hardik Pandya over long for six. Willey was rewarded for his vital cameo as he brought up his maiden international fifty, from just 30 balls, in the final over.
India made a flying start to their reply, Rohit Sharma and, in particular, Dhawan going hard at England's new-ball bowlers.
A rush of blood from Rohit (15), combined with a clever piece of bowling from Mark Wood, cost him his wicket as he skipped down and hacked across the line at a slightly slower delivery that thudded into leg stump.
Willey then removed Dhawan (36) with the final ball of the powerplay, caught by Stokes at backward point, and a fantastic one-handed catch from Buttler had India 60-3 after KL Rahul (0) inside-edged Liam Plunkett's jagging delivery behind.
Kohli and Suresh Raina began the rebuild but the rate began to rise once Morgan introduced his spinners and, in the end, it was spin that brought the breakthrough; Ali (1-42) trapping Kohli (45) plumb lbw with a delivery that turned and skidded through.
Raina (46), who had been dropped on 28 and 37, fell five overs later, bowled by Adil Rashid's googly.
Plunkett returned to oust Pandya (21) just as his partnership with MS Dhoni was beginning to develop, Buttler with another good catch, down the legside, and when Rashid (2-38) had Umesh (0) stumped in the next over, the game was over as a contest.
Dhoni made it to 10,000 career runs in ODI cricket in a strange innings, the India veteran barely playing a shot in anger despite the ever-growing required rate and when he finally did, he picked out Stokes on the boundary, bringing to an end a knock of 37 off 59 balls.
Plunkett had Siddarth Kaul (one) lbw three balls later and Willey (2-48) got his second with what would have been the final ball of the match in any case as Yuzvendra Chahal (12) chipped to long on.
Watch the third ODI between England and India from 12pm, Tuesday on Sky Sports Cricket.