But neither batsman could break the shackles and both eventually fell to Kuldeep.
His return represented just the third time an overseas spinner had taken a five-wicket haul in an ODI in England following Sri Lanka great Muttiah Muralitharan’s five for 34 at Lord’s in 1998 and Suraj Randiv’s five for 42 for India at Old Trafford in 2011.
England, in the absence of the injured Alex Hales, saw openers Jason Roy and Jonny Bairstow put on a brisk 73 after India captain Kohli sent them into bat.
But the introduction of Kuldeep, in his 21st match at this level, changed the course of the innings.
It took Kuldeep, a thorn in England’s side during India’s 2-1 win in the preceding Twenty20 series, just two balls to strike at Trent Bridge.
Roy attempting an ambitious reverse sweep, mistimed the shot and gave a dolly catch to Umesh Yadav as he fell for 38.
Test captain Joe Root, back in the team after being left out of the team that lost the third T20, then played back to Kuldeep and was plumb lbw for three.
Bairstow had looked in excellent touch but, like Roy, he too fell for 38 when lbw to Yadav on review.
Spin also proved the undoing of England captain Eoin Morgan (19) when he carelessly chipped leg-break bowler Yuzvendra Chahal to Suresh Raina at midwicket.
Morgan’s exit left England 105 for four in the 20th over.
Stokes and Buttler staunched the flow of wickets without breaking the shackles.
Buttler was still able to complete a 45-ball fifty, albeit with just five fours, including a stylish cover-drive off Umesh.
But with England hoping he would cut loose late on, Buttler was instead dismissed when a glance off Kuldeep was well caught down the legside by veteran wicket-keeper MS Dhoni.
The normally hard-hitting Stokes then completed a fifty off a sedate 102 balls, including just two fours.
Stokes was also unable to press on. One ball after reaching his fifty, the left-hander tried to reverse sweep Kuldeep only for debutant Siddarth Kaul, who had been at short third man, to hold an excellent catch.
Kuldeep, who did not concede a boundary in his maximum 10 overs, struck again with his final delivery when David Willey holed out in the deep to KL.