Arriving in Spain, Ferrari boasted the grid's most complete package, but Hamilton's display was a return to the Mercedes of old with Valtteri Bottas following his team-mate home to secure the world champions their first one-two finish of the campaign.
It marked the third successive race in a row in which Vettel has failed to mount the podium, having started the year with back-to-back wins, and he now trails race victor Lewis Hamilton by 17 points in the standings. Overall we were a little bit quicker [than Verstappen] but as the laps went on, we just didn't have enough pace.
"It was a great close qualifying, obviously all weekend was close", Hamilton said."Ferrari was probably sandbagging just because they could, they've always had a very quick auto".
A slow five-second service dropped the German behind not only the second Mercedes, but the lead Red Bull too. "It's just very surreal to think that every now and then I keep coming up against Michael in terms of records".
"It is definitely a great, great feeling and I think you could probably see from my energy when I got out the vehicle".
"Today the auto and myself, I felt that synergy which I hadn't been feeling for the whole year", said Hamilton as he celebrated his 64th career win.
He was gifted another opportunity when the Ferrari was forced to take a second stop late in the race, dropping Vettel back to fourth, but Bottas believes he had the pace to challenge Vettel on track.
Assessing what this victory means going forward is difficult as Barcelona has always been a strong track for Mercedes, mostly because of the use of harder tyres which suit their auto more than Ferrari and Red Bull.
"It was very close but I am very happy", Hamilton said. It seems that Raikkonen is yet again on the receiving end of Ferrari's bad luck.
Red Bull's Max Verstappen came third, followed by Ferrari's Sebastian Vettel of Germany in fourth. "It's a good feeling". "Hopefully, we can just work from here and score a lot of good results". Meanwhile, both Red Bull drivers had yet to pit, and Verstappen lorded track position over Hamilton until called to pit on lap 34, his teammate Daniel Ricciardo attended to the lap prior. The top six all set their quickest Q2 times on the soft tyre, meaning they will all start Sunday's race on that compound. His finish helped Haas jump up to 6th place with 19 points, one ahead of Force India. Carlos Sainz finished seventh in his Renault, with Fernando Alonso taking eighth.
Lap 59 saw Perez pass Sauber's Charles Leclerc to increase his team's points haul for the race.
After an embarrassing crash under the Safety Car in Baku, Romain Grosjean caused further embarrassment for himself when he spun on the opening lap after his car got destabilised in the dirty air of Magnussen who was ahead of him. 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. On Friday Mercedes also looked like the faster auto over long runs, holding a 0.9s per lap advantage over Ferrari and 0.6s over Red Bull.