Hamilton blasted out the blocks from pole position at Barcelona’s Circuit de Catalunya and from there his second victory in as many rounds never appeared in doubt.
Vettel looked set to finish behind Hamilton to limit the title damage, but Ferrari’s gamble to pit him for a second time backfired with Valtteri Bottas following Hamilton home to secure Mercedes’ first one-two finish of the season.
Red Bull’s Max Verstappen completed the podium positions, despite damaging his front wing after crashing into the back of Sergey Sirotkin’s Williams, to leave Vettel 17 points adrift of Hamilton.
While there was more than a hint of fortune about Hamilton’s opening victory of his championship defence in Azerbaijan a fortnight ago, the Englishman was in a class of his own on Sunday.
Hamilton roared off his marks to retain his lead on the 200mph charge to the opening bend, while Vettel got the jump on Bottas after a gutsy move around the outside of the Mercedes.
The leading cars navigated the opening metres without drama, but the same could not be said further behind after a three-way crash was sparked by the error-prone Romain Grosjean.
Grosjean, once labelled a first-lap nutcase by Mark Webber, lost control of his Haas at Turn 3 and slid back across the track in a cloud of tyre smoke.
Toro Rosso’s Pierre Gasly and Renault’s Nico Hulkenberg were unsighted and could do little to avoid Grosjean as they both crashed into his out-of-control car.
All three were out of the race in an instant to mark another embarrassing chapter for Grosjean after he crashed out under the safety car last time out in Baku.
The safety car was deployed for six laps here to deal with the debris before Hamilton executed a masterful restart to leave Vettel for dust, and by lap 15, the Brit had already moved 6.5 seconds clear of his rival.
Vettel stopped on lap 17 for a new set of tyres, while Bottas was called in by Mercedes two laps later. Bottas had done enough on track to move back ahead of the Ferrari only for a sticky rear tyre to contribute to a slow stop and leave Vettel running ahead.
Hamilton, however, was in cruise control, as he made his one and only trouble-free stop on lap 25.
Verstappen and team-mate Daniel Ricciardo were promoted to first and third respectively, with Red Bull opting to run their drivers on a longer opening stint. Ricciardo was eventually called in on lap 34, with Verstappen pitting a lap later.
Moments later the virtual safety car was then called upon as Esteban Ocon parked his Force India with an engine problem.
Ferrari took the chance to stop Vettel for a second time in fear that his rubber would not last the course, but he was stationary for more than five seconds which allowed Bottas, who did not stop, and also Verstappen to move ahead of the Ferrari man. It was a mistake which cost the German dearly.
Verstappen then hit back of Sirotkin, but despite sustaining damage to his front wing, held off Vettel with relative ease.
Hamilton crossed the line 21 seconds clear of Bottas, with Vettel 0.7 sec behind Verstappen. Ricciardo took fifth ahead of Kevin Magnussen, Carlos Sainz and Fernando Alonso, who all finished one lap down on the mighty Hamilton.
“This is more like it,” said a jubilant Hamilton as he crossed the line. “Let’s keep this up.”