Sharma hit a wonderful 137 not out after Yadav did the damage with the ball with six wickets, helping India win with 10 overs to spare.
Jos Buttler top-scored for England – which has the chance to level the series at Lord’s on Saturday – with 53 but they failed to deal with Yadav’s spin before toiling in the field.
Yadav claimed 6-25 from 10 overs – including 38 dot balls – as England was outclassed and dismissed for 268 having lost the toss and put into bat.
“We need to get better at playing him,” England captain Eoin Morgan said.
“When he does bowl well he is very good and he exposes an area of our game we need to improve on, that is a healthy thing. It’s a chance to improve in this area, however long it takes, between now and the World Cup.”
Yadav was backed up by the quick-hitting openers before Shikhar Dhawan was caught for 40 after mistiming a slog off Moeen Ali.
But it did little to slow India down as it passed 100 with Sharma and Virat Kohli taking on England. They reached their half-centuries as India cruised to 169-1, needing 100 to win from 25 overs.
The devastating Sharma rattled off a century with a stunning six only after seeing Jason Roy drop an extremely difficult chance when the opener was on 92.
Kohli, though, was stumped by Buttler for 75 off Rashid to end the partnership at 167 but it was only a brief respite for England.
Mark Wood’s 0-55 from six overs was costly but Morgan’s side failed to post a competitive total.
England, which plundered a record 481 in Nottingham against Australia last month, struggled despite an opening stand of 73.
Yadav took control in a devastating spell, claiming 3-7 from two overs with Jason Roy, Jonny Bairstow and Joe Root all falling.
“Luckily I got three wickets in two overs which changed the momentum,” Yadav said.
“I’m enjoying English conditions at the moment. I didn’t try anything new, I stuck to the basics and stuck wicket to wicket. I’m hoping for the test call and let’s see what happens in a couple of days when they announce the team.”
Roy (38) was caught by Umesh Yadav while Bairstow (38) and Root were trapped lbw in the 13th over.
It saw England slip to 82-3 and Morgan (19) walked after bringing up England’s 100, giving his wicket away after being caught at midwicket off Yuzvendra Chahal.
From then it was slow going as Ben Stokes took 103 balls to make his fifty and Buttler crept to a half-century as the pair rebuilt the host’s innings.
India restricted England to pinching quick runs rather than plundering boundaries – a far cry from when Bairstow and Alex Hales smashed 41 between them against Australia.
And when Kuldeep Yadav returned he had Buttler caught behind for 53 thanks to Mahendra Singh Dhoni’s impressive reflexes.