Starting from his 10th pole position of the season and sixth in succession, the 30-year-old Briton dominated with some ease as he finished a controlled 2.058 seconds clear of the German.
Hamilton now has 227 points and Rosberg 199.
It was Hamilton's second victory at the Belgian race -- his previous for McLaren in 2010 -- his sixth of the season and the 39th of his career.
Four-time champion German Sebastian Vettel looked likely to finish third for Ferrari, in their 900th Grand Prix race, until he suffered a right rear tyre failure on the penultimate lap, as the team risked running him on a one-stop strategy.
More From This Section
That spectacular incident ensured that Frenchman Romain Grosjean, who had mounted a thrilling attack for Lotus in the final laps, took third place in an enthralling race.
It was Grosjean's first podium of the season for the troubled Lotus team, that has faced severe financial problems, and his first podium since the 2013 United States Grand Prix.
Local hero Dutch teenager Max Verstappen thrilled his fans in a big crowd by driving from 16th on the grid to take eighth place for Toro Rosso ahead of Finn Valtteri Bottas of Williams and Swede Marcus Ericsson of Sauber.