The six-time world champion bounced back from a disappointing season-opening Austrian Grand Prix on the same Red Bull Ring circuit a week earlier with a consummate display.
His team-mate Valtteri Bottas, who won the curtain-raising race, finished 13.7 seconds adrift in second to deliver a solid Mercedes one-two, their first in Austria since 2015.
Max Verstappen was third for Red Bull, slowed by slight car damage in the final stages, ahead of his team-mate Alex Albon, who defended stoutly to finish fourth.
“It’s great to be back up here and thanks to the team,” said Hamilton.
“This feels like it has been a long time coming after a difficult weekend last time.”
Bottas said he had enjoyed his battle with Verstappen.
“Starting fourth, this was damage limitation for me,” he said.
“I tried, but we are just a bit too slow,” admitted Verstappen.
Bottas leads the embryonic championship ahead of Hamilton with Lando Norris third.
Norris came home a remarkable fifth for McLaren after passing both Racing Points cars during a thrilling final lap, Sergio Perez taking sixth after starting from 17th on the grid, and Lance Stroll seventh.
Daniel Ricciardo was eighth for Renault, Carlos Sainz clocked fastest lap and finished ninth in the second McLaren and Daniil Kvyat 10th for Alpha Tauri.
– ‘I’ve let team down’ –
Both Ferraris were eliminated after crashing together at Turn Three on the opening lap, Charles Leclerc apologising to four-time champion Sebastian Vettel, who is in his last season with the team, for his ill-judged dive down the inside that resulted in a disaster for the Italian team.
“I am disappointed in myself. I’m sorry but being sorry is not enough,” tweeted Leclerc.
“Seb hasn’t got any faults today. I’ve let the team down after them working a whole week to bring the updates early. Too eager to gain those places in the first lap. I will learn from it.”
Hamilton made a smooth start from his record 89th pole position, pulling clear of Verstappen and an aggressive Sainz.
There was early drama when the two Ferraris collided at Turn Three, Leclerc bouncing off the kerb as he attempted an over-ambitious move to pass Vettel and crashing into the rear of the German’s car.
The four-time champion’s machine was badly damaged, the rear wing almost removed, and after limping to the pits he was forced to retire.
Leclerc survived, but abandoned the contest soon after the resultant Safety Car had pulled in.
On resumption, Hamilton took control.
Having given a master-class in the wet on Saturday, this was, by comparison, a measured and strategic Sunday stroll.
The sport’s only black race winner and champion showed no affects either from another muddled pre-race gesture by the drivers in support of F1’s anti-racism stance in which he took a knee again, with at least 10 others, while four stood.
All wore ‘End Racism’ t-shirts.
Hamilton soon built a commanding lead ahead of Verstappen’s Red Bull, the Briton reeling off fastest laps at will while Mercedes team-mate Bottas closed in from third.
Verstappen was first to pit and rejoined behind the Finn, but ahead of team-mate Albon shortly before Esteban Ocon became the third retirement in his Renault.
Hamilton pitted from the lead after 28 laps, swapping his softs for a set of mediums, and was soon followed by Bottas, who returned 8.2 seconds adrift of Verstappen.
Behind the leaders, the fastest man on track was Perez, who had carved through the field after starting 17th.
With 15 laps remaining, he was fifth and hounding Albon for fourth.
By this time, Verstappen was hampered by a flapping front-wing footplate and Bottas had closed to within a second.
On lap 66, Bottas passed him on the back straight, but the Dutchman fought back and forced him to try again on lap 67 when, finally, he sealed his spot in an inevitable Mercedes one-two.