Mercedes showed again that it's in a different class from its rivals, with Hamilton's teammate Nico Rosberg taking second place and the third time in four races this season the pair have finished one-two. (Agencies)
Fernando Alonso held on for third place to give Ferrari its first podium finish of the year. Red Bull's Daniel Ricciardo was fourth, while his teammate, defending world champion Sebastian Vettel, slumped to fifth.
The win gave Hamilton his first career hat trick following his wins in Malaysia and Bahrain. The Briton may have had a fourth victory, but he was forced to retire in the season-opening race in Australia after starting from pole position due to engine trouble.
Hamilton also inched closer to his teammate's lead in the drivers' championship with 75 points, just four behind Rosberg. With Hamilton far out in front for much of the race, his rivals were left to battle for second best.
Rosberg, expected to challenge Hamilton in Shanghai after the pair's tight duel in Bahrain, started fourth on the grid and was forced to play catch-up after a slow start immediately dropped him back to seventh place.
The German methodically tracked down the two Red Bulls and then finally passed Alonso on the back straight of the 43rd lap, the Ferrari unable to match the speed of the Mercedes.
Rosberg then set his sights on Hamilton, but his teammate was well in front and finished nearly 19 seconds clear of the German.
Vettel, meanwhile, was instructed by his team to let his younger teammate, Ricciardo, pass him for the second race in a row. Instead of acceding, however, the four-time defending champion initially fought off Ricciardo's attempts to get by.
Vettel asked his team what tires Ricciardo was using and when told they were both on mediums, Vettel responded, "Tough luck." At the start of lap 26, though, Vettel did finally make way for the faster Ricciardo and was unable to challenge him again.
Ricciardo nearly caught Alonso at the end but ran out of time, falling short by 1.2 seconds. It would have been the first podium finish of his career after he had finished second in Australia but the result was stripped after he was found to have breached new fuel regulations.
It was a solid race for Force India, which saw Nico Hulkenberg finish sixth and Sergio Perez take ninth. Williams driver Valtteri Bottas was seventh, Ferrari's Kimi Raikkonen was eighth, and Toro Rosso's Daniil Kyvat finished in 10th, another impressive showing by the 19-year-old debutant.
Mercedes showed again that it's in a different class from its rivals, with Hamilton's teammate Nico Rosberg taking second place and the third time in four races this season the pair have finished one-two.