Media playback is not supported on this device
The world champion converted pole position into a lead on the first lap and was in control throughout, taking his sixth win and extending his lead to 28 points.
Lotus's Romain Grosjean took third after a rear tyre failure on Sebastian Vettel's Ferrari with two laps to go.
Vettel was holding off the Lotus on a one-stop strategy when the tyre exploded. It was the same tyre that had failed on Rosberg's Mercedes during Friday practice.
The failure, though, prompted a furious reaction from Vettel, who was one of several leading drivers to express their concerns about tyre safety at the drivers' briefing after practice on Friday.
Hamilton was on pole by nearly half a second from Rosberg and his advantage continued into the race.
He was helped by Rosberg being delayed by the Force India of Sergio Perez and Daniel Ricciardo's Red Bull, who beat him off the line from fourth and fifth places on the grid, as third-placed Valtteri Bottas's Williams dropped back.
But early pit stops for Perez and Ricciardo put Rosberg into second place by lap nine, by which time Hamilton was 8.3 seconds in front.
The lead stayed stable until they made their first pit stops, Rosberg coming in first in lap 12 and Hamilton on lap 13, the advantage of coming in first allowing Rosberg to reduce the gap to 3.4 seconds.
Hamilton had a brief concern when Rosberg somehow closed the gap by a second while the field was being controlled by the virtual safety car after Ricciardo's car broke down on the pit straight on lap 21.
But once the race was restarted a lap later, Hamilton soon stamped his authority on Rosberg, stretching the lead from 2.6secs on lap 23 to 5.4secs five laps later.
There, Hamilton stabilised the gap and cruised to his sixth victory of the year, out of 11 races to start the second half of the season in the perfect manner.
Vettel, fresh from his victory in the last race in Hungary, was the only driver to try to make a one-stop strategy work.
He chose, like the dominant Mercedes not to stop under the virtual safety car, unlike most of his rivals. But unlike Mercedes, he did not stop again for fresh tyres.
That promoted the four-time champion to third, ahead of Grosjean and Perez, but as the Ferrari driver nursed his tyres to the end the Lotus closed in and Vettel's tyre exploded as he was trying to resist him.
"Things like that are not allowed," he told BBC Sport's Lee McKenzie. "If that happens 200 metres earlier, I am not standing here right now."
Media playback is not supported on this device
The result, especially impressive as Grosjean had to fight up from ninth on the grid following a five-place gearbox penalty, was a welcome boost for troubled Lotus, fighting off financial legal challenges as they try to keep the outfit afloat.
Plus it was three years since the Frenchman received a one-race ban at the Belgian Grand Prix for causing a spectacular accident at the first corner, which saw his Lotus somersault on to the cockpit of Fernando Alonso's Ferrari.
Behind Grosjean, Red Bull's Daniil Kvyat took advantage of a late final pit stop to pass Ferrari's Kimi Raikkonen, Felipe Massa's Williams and then Sergio Perez's Force India in quick succession in the closing laps to take a superb fourth.
"Next car!" he shouted over team radio as he passed Perez.
The midfield was incredibly tightly packed, and Raikkonen also came under pressure from Toro Rosso's Max Verstappen on the last lap, the 17-year-old Dutchman just failing to take seventh when he overcooked a passing attempt at the Les Combes chicane.
Earlier in the race, Verstappen had also overtaken Felipe Nasr around the outside of the high-speed Blanchimont corner.
Williams's Valtteri Bottas took ninth, despite a drive-through penalty for fitting a mis-matched set of tyres, with Marcus Ericsson's Sauber taking the final point.
"We have had such a great crowd here this weekend," said Hamilton. "The whole circuit has been packed out with the fans. Incredible job done by the team throughout the weekend. Today was a dream and the car was fantastic all weekend."
"When I saw one of the tyres blow off one of the others cars I was being very cautious but I felt 100% all weekend."
"I messed up the start," said Rosberg. "Lewis did a great job and deserved the win. I tried to challenge him but not enough.
"I am rushing off after this because we are expecting our first child any moment. An exciting time and I look forward to next week."
Grosjean said: "The guys have been working hard to give us the car to be where we are today. Being here today is special for us, it has the prize of a race win."
Full race results
Coverage details
Lewis Hamilton beat Mercedes team-mate Nico Rosberg to take a dominant win at the Belgian Grand Prix to extend his championship lead.