Dhaka: Debutant Jake Ball and leg-spinner Adil Rashid bowled England to a thrilling 21-run victory over Bangladesh in the first one-day international in Dhaka.
Ball took five wickets and Rashid four as the hosts slipped from 271-4 to 288 all out in pursuit of England's 309-8.
Ben Stokes starred with the bat, hitting his maiden ODI century, while another debutant, Ben Duckett, hit 60.
Jos Buttler smashed 63 and completed a stumping in the hosts' collapse to seal a fine performance.
It was a remarkable fightback from England as Bangladesh clearly buckled in the humid evening conditions.
The Tigers, who knocked England out of the 2015 World Cup, appeared to be cruising to victory when Kayes brought up his century alongside former skipper Shakib Al Hasan (79 off 55).
However, both batsman took time out to deal with cramp in the oppressive heat and it was after one particular break in play that England - who had seemed unable to stem their opponent's run chase - fought back.
Tall fast bowler Ball, bowling back of a length, dismissed Shakib and Mosaddek Hossain with consecutive deliveries and later completed victory when he had Taskin Ahmed caught behind by Buttler.
Lancashire wicketkeeper Buttler, captaining England for the first time, was inspirational - also stumping his opposite number Mashrafe Mortaza off a wide bowled by Rashid in a dramatic and frenetic finale.
England - 309 for 8 (Stokes 101, Buttler 63, Duckett 60)
Bangladesh - 288 (Kayes 112, Shakib 79, Ball 5-51, Rashid 4-49)
Result - England win by 21 runs