Hamilton snatched the lead from pole-sitter Nico Rosberg at the first turn, evading attempts by the fast-starting Red Bull Racing cars to take first place for themselves.
The Briton was rarely troubled thereafter, his gap to Rosberg only slipping to less than two seconds when blocked by traffic and after a lock-up in the final laps of the race.
The new championship leader easily rebuilt his lead each time; Rosberg had no reply to Hamilton’s pace and was forced to finish a subdued second.
The championship gap now stands at six points in Hamilton’s favour just after the halfway point of the season and less than two months after the reigning world champion was 43 points in arrears.
“I wouldn’t have been able to do it without the great people I’ve worked with,” Hamilton said. “It’s the result of great work of such a large group of people, I’m really just a chink in the chain.”
The win was Hamilton’s fifth in Hungary, making Hamilton the most successful driver at the Hungaroring in its 31-race history with one more victory than Michael Schumacher.
“I love it here, so I hope there’s more to come before I stop.
“It’s not the easiest Grand Prix I’ve had here in my nine or ten years, but definitely one I enjoyed – a great battle between the three of us.”
Rosberg had never before finished on the podium in Budapest, but on the weekend he re-signed with Mercedes for two more years with the intent of challenging for championships, his maiden appearance will be of little comfort.
Starting from pole, Rosberg was jumped by his teammate and both Red Bull Racing drivers.
Though the second silver arrow was able to reclaim the runner-up place by the second turn, Rosberg admitted Hamilton won the race at the first corner.
“The race was decided there,” he said. “My start was okay, but slightly down on Lewis’s start and Daniel’s also ever so slightly.
“Lewis had the inside line and I lost out into turn one.
“I was at least glad to get back second place at turn two around the outside [of Ricciardo], but I lost the win there.”
Daniel Ricciardo became locked in a battle with Sebastian Vettel for the final podium place.
The duo were evenly matched on pace, but Red Bull Racing rolled the dice on Ricciardo’s track position with an aggressive undercut at his second stop.
The Australian pitted on lap 34 and was tasked with running the remaining half-race with a single set of soft tyres, despite Pirelli recommendation of a 29-lap maximum.
The gamble bought Ricciardo extra seconds by the time Vettel was stopped for his own softs seven laps later.
In the closing ten laps, however, Vettel closed up on Ricciardo and threatened to pass him, but the Red Bull Racing car was able to fend off the Ferrari’s advances just long enough to reach the chequered flag ahead.
“I’m pleased with the podium,” said Ricciardo.
“At the first part of the race we looked quite competitive, but Mercedes … was able to improve the pace as the race went on. Then the fight was with Sebastian.
“It wasn’t easy on the last lap – he would’ve had DRS and got quite close at turn one.
“A bit of a fight, so a bit of a relief, actually, to come home third.”
Max Verstappen finished fifth ahead of Kimi Räikkönen after a last-stint stoush over position that resulted in the Finn losing part of his front wing.
Fernando Alonso finished seventh for McLaren to collect six points one day after the team recorded its best qualifying result since pairing with Honda last season.
McLaren teammate Jenson Button wasn’t so fortunate, however. The 2009 world champion’s car developed a brake problem on lap five, he was handed a drive-through penalty for illegal radio communication on lap 10, and he became the race’s only retirement on lap 60.
Carlos Sainz finished eighth for Toro Rosso, one place ahead of Williams’s Valtteri Bottas and Force India’s Nico Hülkenberg in the final points-paying places.
Formula One returns to Hockenheim this weekend (July 31) after a one-season hiatus for the 2016 German Grand Prix.