The Briton retained his lead over Rosberg away from the start, but Vettel stayed in contention with the two Mercedes drivers and began closing in the mid-stages of the race, as Hamilton and Rosberg sought to extend their stints on the soft tyre.
Vettel then attempted to undercut Rosberg by pitting first, and while the Mercedes driver was able to pit immediately and retain his position, he later expressed his unhappiness at what he believed was unnecessarily slow pace from Hamilton.
"Interesting to hear from you, Lewis, that you were just thinking about yourself," Rosberg said to his team mate in a tense post-race press conference.
"The pace in front was compromising my race. Driving slower than was maybe necessary meant Vettel was very close to me, and that opened up the opportunity for him to try the early stop and then I had to cover him. That cost me race time, and as a result my tyres died at the end of the race because my stint was much longer.
"I'm unhappy about that today."
Hamilton however batted away the criticism, saying: "My job is not to look after Nico's race, my job is to manage the car and bring it home.
"I didn't do anything intentionally to slow the cars up. If Nico wanted to get by he could have tried, but he didn't."
Hamilton's triumph - his second of the season - moved him 13 points clear of Vettel in the drivers' standings, with Rosberg four points further back.
For the full press conference transcript in Shanghai, click here.