Ahead of the race, Mercedes had labelled Max Verstappen as the favourite after his victory at Silverstone last week, with similar hot conditions expected at the Circuit de Barcelona-Catalunya.
But pole-sitter Hamilton was in control throughout on Sunday and his win never looked to be in doubt as he increased his lead in the drivers' standings to 37 points.
Red Bull's Verstappen did beat Valtteri Bottas for second place in a grand prix short on drama at the front, with Racing Point duo Lance Stroll and Sergio Perez rounding out the top five.
A dramatic start saw Bottas drop from second to fourth, as Verstappen passed him and Stroll surged up two places to third, with the Mercedes driver narrowly avoiding contact with Alex Albon and only just holding off a challenge from Perez.
Bottas remedied some of the damage by passing Stroll on lap five to regain one of his lost places, while Hamilton had built an eight-second lead over Verstappen by the time of the first pit stops.
At the scene of his first F1 win back in 2016, Verstappen had been struggling with one of his rear tyres and became increasingly agitated before pitting for mediums on lap 22, two laps before Hamilton did the same and re-emerged in the lead.
The advantage had increased beyond 10 seconds before Verstappen made his second stop on lap 42 as Bottas closed in behind him, the Finn then extending his stint by a further seven laps.
But while Bottas came back out on fresher tyres, a late challenge to Verstappen for second did not materialise as Hamilton continued to build a huge lead out front.
Teams had discussed the threat of rain appearing in the latter stages of the race but that potential drama did not arrive as Hamilton took a comfortable fourth victory of the campaign.
A late fastest lap for Bottas provided only slight consolation, as he fell further behind Hamilton and Verstappen.