England outscored their old rivals four tries to one and had 20 points from Owen Farrell's perfect kicking as they set up a last-four clash with New Zealand or Ireland, who play later.
Sharma, on 117, combined with Ajinkya Rahane, on 83, to put on an unbeaten 185-run stand after the hosts were wobbling at 39-3 following their decision to bat first in Ranchi.
Uncapped spinner Shahbaz Nadeem was added to the team – which already has an unassailable 2-0 lead in the three-Test series – for the final match in Ranchi starting Saturday.
The batsman had been banned for 20 years by national body Cricket South Africa (CSA) for his role in attempting to fix or influence matches in a 2015 domestic T20 competition.