The world champion controlled the race from the moment he passed Mercedes team-mate Nico Rosberg at the start and is now six points ahead of the German.
Red Bull's Daniel Ricciardo briefly threatened the leaders at mid-distance but his challenge faded.
Ricciardo had to be content with holding off Sebastian Vettel for third.
The Australian's team-mate Max Verstappen was fifth with Vettel's Ferrari team-mate Kimi Raikkonen finishing close behind.
Raikkonen, who drove well from 14th on the grid, collided with Verstappen's Red Bull in a lively fight in the closing laps but was unable to pass the Dutchman.
McLaren's Fernando Alonso took seventh but it was a difficult afternoon for the Spaniard's team-mate.
Jenson Button qualified one place behind Alonso in eighth but dropped to last with hydraulic problems early on, giving him what he described as "the race from hell".
Button was running 20th when the team told him to stop with seven laps to go - the only retirement of the race.
Ten races remain in a record 21-race season. The next round is the German Grand Prix at Hockenheim next weekend.
The biggest threat to Mercedes' control of a largely soporific race was at the start, when Ricciardo and Verstappen benefited from the slipstream of the silver cars and the two Red Bulls threatened the Mercedes into the first corner.
Ricciardo was alongside Hamilton on the outside as they went around Turn One but had to drop back on the exit.
Rosberg then passed Ricciardo around the outside of Turn Two to slot into position behind Hamilton.
The top three held position through the first pit stops, after which Ricciardo had slipped eight seconds behind Rosberg.
But Hamilton complained he was "struggling for pace" as Rosberg lapped just a second behind him, and Ricciardo homed in to within three seconds of the Mercedes pair after 30 laps.
Hamilton was warned to up the pace, or Mercedes would bring Rosberg in first at the final stops - a clear warning that his victory was under threat.
Hamilton responded by increasing his pace by a second on the next lap.
And when Ricciardo made an early final pit stop on lap 33, the true pace advantage of the Mercedes became clear.
The threat was that Ricciardo could use his fresh tyres to close the gap on the Mercedes and be ahead when they made their final pit stops a few laps later.
Instead, Hamilton and Rosberg were able to lap as fast as and often faster than the Red Bull despite tyres that were 20 laps older. From that point on, the race was clearly over.
There were, though, a couple of nervous moments for Hamilton.
He was held up by Haas' Esteban Gutierrez on lap 52 of 70 - for which the world champion gave the Mexican a middle-finger salute as he finally passed - and Rosberg closed to within half a second.
And a mistake from Hamilton at Turn 12 in the last 10 laps after a momentary lapse of concentration again put Rosberg on his tail.
But each time Hamilton was able to extend his advantage at will and he eased to his fifth win of the year.
Ricciardo and Verstappen started together on the second row ahead of Vettel and maintained those positions through the first stint.
But the four-time champion was able to get ahead by making his first pit stop two laps earlier than Verstappen, whose race was further damaged by emerging behind Raikkonen who was yet to stop.
It was perhaps a strategic error by Red Bull to leave Verstappen out so long, and the battle was rejoined late in the race as Raikkonen emerged after his second pit stop right behind the Dutchman.
Ferrari started Raikkonen on the soft tyre and then used two sets of super-softs, rather than the super-soft/soft/soft strategy of those in the top 10.
On faster tyres, Raikkonen challenged Verstappen, only to run into the back of him when misjudging an overtaking manoeuvre on lap 57 and damage his front wing.
Despite losing aerodynamic downforce, Raikkonen came back again at Verstappen but the Red Bull was able to hold off the Ferrari - youth trumping experience again in a repeat of their battles at the Spanish and Austrian Grands Prix already this year.
Hungarian Grand Prix race results
Lewis Hamilton cruised to a comfortable victory at the Hungarian Grand Prix to take the championship lead for the first time this season.