A strong all-round display from Ben Stokes helped England register the first win of their India campaign, beating the hosts by five runs in a closely-contested ODI at Eden Gardens in Kolkata on Sunday.

Virat Kohli, India's captain, won the toss and opted to bowl first on a surface that offered bounce to the seamers. His seamers though failed to make early inroads as Jason Roy and Sam Billings laid a solid 98-run opening platform in 17.2 overs.

Roy - in particular - was unforgiving and attacked the new ball from the onset. He clubbed 10 fours and a six in his 56-ball 65. His partner, Billings, played in his shadow for most part and looked to harvest the strike. Billings' departure in the 18th over, to Ravindra Jadeja, gave India hope of curbing the tempo.

Jadeja added his tally an over later and accounted for the dangerous Roy. England had two new batsmen at the crease and India looked to drive home the advantage, but Jonny Bairstow and Eoin Morgan added 84 runs for the third wicket and guided their side to 194 in 33.4 overs before Morgan fell for a 44-ball 43.

Jos Buttler's departure four overs later brought Stokes to the fore and he mixed caution with aggression as he looked to push his side to an imposing total. Stokes hit four fours and two sixes in his unbeaten 39-ball 57. He reached his 50 from just 34 ball, which is the second fastest for England in ODIs against India. The record stands in his name too: in the first game of the series, when he reached the mark off 33 balls.

England managed 58 runs from the last five overs with Stokes and Chris Woakes ensuring that their top orders effort against the seaming new ball didn't go to waste as as they posted 321.

India's batsmen - fresh from their impressive display in the first two ODIs - backed themselves to chase the target. But they lost openers, Ajinkya Rahane and KL Rahul in the first six overs. Virat Kohli and Yuvraj Singh added 65 for the third wicket. The former reaching his 50 in the 18th over.

In the 20th over though, Stokes lured Kohli into a drive with a bit of width outside off and he edged it to Buttler who completed the catch. The hosts needed to score at over seven runs an over at that stage to register a win. Yuvraj and MS Dhoni struggled to find fluency and scored at just 5.5 in their 31-run stand. Their departure six overs apart brought Kedar Jadhav and Hardik Pandya to the fore and they carved 104 runs from the next 83 balls and kept the asking rate of nine an over in constant sight.

Stokes though once again delivered and bowled Pandya with a fuller-length inswinger that breached his defences. Jadhav carried India's hopes as they required 27 from the final three overs. Stokes kept it tight and conceded just four singles in the 48th over in which he dismissed R Ashwin.

India required 16 from the last over and Jadhav clubbed a four and six from the first two balls of Chris Woakes. Two dot balls followed and then Jadhav was dismissed for 90, which ended hope of a ODI series white wash.

"It was a difficult time last time we came here, put it down to good captaincy from Morgan getting my overs out of the way before the end," Stokes, the Man of the match, said. "Billings' has got a safe pair of hands, and most people have them. Always backing him to catch that. It was difficult to start, the ball was not necessarily going through the top, but it was going a bit. Just want to start well and capitalise, Woakesy played a good hand as well. There's always dew here, it's tough for the bowlers to hit their straps. We've waited a long time to win on this tour, think we forgot to be honest. it's been fantastic to be part of three really tight games and thankfully we ended up with a win for England."