The ICC Cricket Academy Oval in Dubai hosted the two teams in their first meeting since the abruptly cancelled decider of their Test series in England five weeks ago.
A strong 188-5 was put on the board after England batted first, with Jonny Bairstow hitting 49 and Moeen Ali adding an unbeaten 43 in just 20 balls. KL Rahul’s 51 and a smashing 70 from Ishan Kishan put India in good stead for a thrilling finish.
Yet Chris Jordan allowed 23 runs from his 19th over to seal the result.
Eoin Morgan opted to sit out after leading Kolkata Knight Riders to the Indian Premier League final, but Moeen did feature in the middle order despite appearing in the same match and helping Chennai Super Kings to victory.
His hard-hitting steered England to a good looking total, finishing the innings with a flourish of 16 runs off the last three deliveries. Moeen is no longer considered an automatic pick but did his chances of making the XI for the start of the Super 12 stage no harm at all.
Further up the order Buttler (18), Jason Roy (17) and Liam Livingstone (30) all got starts before succumbing to the nous of Mohammed Shami, and Bairstow held things together with a strong knock from number four. He hit four fours and a six in his 36-ball stay before being clean bowled by a vicious Jasprit Bumrah yorker.
India set about their target with certainty, roaring into a first-wicket stand of 82. Rahul continued his riotous IPL form by passing his half-century in just 23 balls, only to hole out to Mark Wood as soon as his celebrations had subsided.
Kishan was more than ready to keep the pressure on, dashing to his own fifty with a statement of real intent - charging England's premier spinner Adil Rashid and hammering him high and handsome into the stands. Two balls later, he helped himself to six more.
Livingstone picked up the prized wicket of Virat Kohli for 11, providing further evidence of the usefulness of his mix-and-match spinners, but back-to-back sixes from new man Rishabh Pant off Moeen halted any hint of momentum.
Ishan's retirement slowed the progress, with India left chasing 41 from the last five overs but with heavy dew on the ground England could not keep control of the run-rate.
Jordan struggled badly in the penultimate over, conceding seven in no-balls, allowing two free-hits and seeing Pant wrap things up with a swat for six.
England's second and final warm-up game is against New Zealand on Wednesday, ahead of their tournament opener against the West Indies on October 23.
Additional reporting from PA Media.