Hamilton extended his lead to 17 points in the drivers' championship, having been 17 behind after the second race of the season in Bahrain, however he remained cautious.
It also set a record, one that Hamilton had previously shared with seven times champion Michael Schumacher, of 41 wins from pole position. He inherited victory at the last round in Baku but in Spain, having claimed pole with a superb lap, he converted it with clinical efficiency that exploited the performance he has sorely lacked from the Mercedes in three of the four previous rounds. Verstappen has good memories here, as he captured his first ever F1 win in Barcelona in 2016, while Ricciardo finished third at this race a year ago.
Mercedes motorsport chief Toto Wolff agreed that Ferrari had been in worse shape for tyre wear, and said it had been a concern for his team too.
Hamilton may have needed a huge stroke of luck to clinch his first victory of the season last time out in Baku - but it was all down to him and a superior auto in Barcelona.
After dominating in the season opener at Melbourne but failing to win after Vettel took advantage of a late virtual safety auto, Mercedes admitted a software error had caused the miscalculation that had cost Hamilton. This was also Mercedes' first one-two of the campaign and sent them back on top.
Mercedes will be optimistic that they are getting to grips wth the issue of putting their tyres in the correct operating window that has seen them struggling for performance thus far. The victor has come from the front row in 24 of the 27 races in Barcelona. Victory here will have given the defending champion the impetus he has felt has been lacking for the past three races. The championship leader jumped ahead at the start of the race and was only briefly headed by Max Verstappen as the pit-stop strategies played out before the Brit regained a commanding lead.More news: E. coli on the rise in the US
More news: Some rain possible, but the weekend will be warmer
More news: Iranian Foreign Minister Visits China To Discuss Nuclear Deal
The race started in chaotic fashion as Romain Grosjean lost control of his Haas-Ferrari and while spinning and smoking his tyres, spun into the path of Renault F1's Nico Hulkenberg and Toro Rosso-Honda's Pierre Gasly.
All three drivers were unhurt but it was an exceptionally unsafe incident and why Grosjean kept his foot on the gas as he span, causing smoke that unsighted the following drivers, seems inexplicable.
Lewis Hamilton and Mercedes are not done just yet.
Hamilton had a clean start, with Vettel moving from third to second by passing Bottas on the outside of Turn 1.
In the end, Verstappen rounded out the podium behind Hamilton and Bottas, with Vettel consigned to fourth on a day that Ferrari might be disappointed with - teammate Kimi Raikkonen dropped out early with power unit troubles on Lap 25. The team was so reactive today with the strategy.
With Hamilton once again in clean air out front he held the lead on Vettel at over ten-seconds, when the virtual safety auto was deployed after Esteban Ocon's retired at the side of the track on lap 41. Potentially they may have believed with their first stop so early they could not make the flag with only one stop. It had seemed as though the Dutchman had blown another opportunity for a strong finish when he collided with Lance Stroll just after a Virtual Safety Car period, but the damage to his front wing did not seem to seriously jeopardise his race from that point.
There was no way that Verstappen could have challenged Hamilton for the top position on the podium.