With the sun shining over the Ardennes forests, and rain holding off until after the finish, Hamilton took the chequered flag two seconds ahead of Rosberg in Mercedes’ seventh one-two in 11 races.
What drama there was unfolded behind them, with Ferrari’s Sebastian Vettel lucky to escape unscathed from a 300kph blowout on the penultimate lap that robbed him of third place in his 150th grand prix.
Instead, Frenchman Romain Grosjean completed the podium for troubled Lotus.
“Today was a dream and the car was fantastic all weekend,” declared Hamilton, who controlled the race from the opening lap — after an aborted first start — and never looked threatened by his German rival.
“I was never in a position where I felt nervous, I had great pace in the car. There was no real need to push more than I had to,” he added.
The two collided at Spa last year, with Hamilton having to retire, but the risk of that happening again receded when Rosberg made a slow getaway off the front row and fell to fourth after the first lap.
“I just completely messed up the start,” said the German, who had hoped to capitalise on changed starting procedures that leave more to the driver and prevent engineers from helping remotely.
“Lewis did a great job, he deserved to win.”
Vettel’s tyre fright, moments after sweeping through the fearsome Eau Rouge, proved as much of a talking point as Hamilton’s domination.
With Rosberg suffering another explosive blowout in Friday practice, and the fastest track of all coming up next with Ferrari’s home Italian Grand Prix at Monza, tyre supplier Pirelli came under fire.
“Things like that are not allowed to happen. Full stop. If it happened 200 metres earlier, I am not standing here now,” declared Vettel.
While he fumed, Grosjean grinned as he returned to the podium for the first time since 2013 in a morale boost for a financially-hit team who arrived in Spa with the threat of having their cars impounded hanging over them.
“Being here today is special for us, it has the price of a race win,” said Grosjean, who has worked with a sports psychologist to overcome the trauma of a race ban incurred when he triggered a pile-up at the start in 2012.
Hamilton has now won six races this season, and 39 in his Formula One career.
The double champion has 227 points to Rosberg’s 199 and Sunday was also his 80th podium appearance, equalling the achievement of boyhood hero and late triple world champion Ayrton Senna.
Russian Daniil Kvyat finished fourth for Red Bull after a late charge through the field with Mexican Sergio Perez, who had stormed into second place and then challenged for the lead at the start, finishing fifth for Force India.
Last year’s winner Daniel Ricciardo triggered the virtual safety car when his Red Bull slowed to a halt on the final corner.
Brazilian Felipe Massa was sixth for Williams, with Ferrari’s Kimi Raikkonen seventh after starting in 16th place, and 17-year-old Belgian-born Dutchman Max Verstappen eighth for Toro Rosso.
Finland’s Valtteri Bottas was ninth for Williams, after an embarrassing team error that saw him leave the pits with three soft tyres and one medium fitted, a gaffe that the team promised to investigate.
Sweden’s Marcus Ericsson took the final point for Sauber.
Germany’s Nico Hulkenberg caused the aborted start, and reduction of the race to 43 laps instead of 44, when he reported a loss of power and raised his hands. The German returned to the Force India garage and retired.
The McLaren pair of Fernando Alonso and Jenson Button, who started last after picking up a meaningless combined grid drop of 105 places — despite there being only 20 in total — finished 13th and 14th.
(Reporting by Alan Baldwin, editing by Pritha Sarkar and Ken Ferris)