Hamilton, last year’s winner in Belgium, started from pole position but finished second for Mercedes while Red Bull’s Max Verstappen gave his army of Dutch fans something to cheer with third place.
In the battle of four times world champions, Hamilton now has 231 points to Vettel’s 214.
“I had a great start, I’m not sure Lewis saw me as he pushed me to the left in the first lap, but after last year I ended up short, and this year it was the other way around,” said Vettel of his decisive pass on Hamilton.
“As soon as I was ahead I relaxed. I had a good restart after the safety car, and after that it was a very smooth race,” he added.
The start provided most of the afternoon’s excitement, with Fernando Alonso’s McLaren flying over Charles Leclerc’s Sauber at the La Source hairpin after being rammed by Renault’s Nico Hulkenberg.
All three retired as the safety car was deployed for four laps but Leclerc had reason to thank the ‘halo’ head protection system - introduced this season - for allowing him to step away unscathed.
Television close-up images after the race showed the structure heavily marked by the impact.
“The Halo was a very good thing to have today. I think for him, it helped,” commented Spaniard Alonso, who will be leaving Formula One at the end of the season.
Ferrari’s Kimi Raikkonen, a four times winner in Belgium, and Red Bull’s Daniel Ricciardo also collided at the start and retired after pitting, the Finn having to wait for his 100th career podium.
At the front, Vettel swiftly seized the lead from Hamilton down the Kemmel straight on the opening lap and never looked back, taking the chequered flag 11.0 seconds clear of Hamilton.
“He drove past me like I wasn’t even there on the straight,” said Hamilton, who was quick to shake his rival’s hand and offer congratulations.
“They have got a few trick things going on in the car,” he added. “I did what I could, we did what we could so we have to keep working.”
It was the German’s fifth win of the campaign, matching his British rival, and 52nd of his career - one more than the great four times champion Alain Prost managed.
Hamilton’s teammate Valtteri Bottas finished fourth, and set the fastest lap, after starting 17th.
Force India began their existence under new ownership with a haul of points that lifted them immediately off the bottom of the standings.
The team, who had started with all their constructors’ points taken away following confirmation as a new mid-season entry, had Mexican Sergio Perez fifth and Frenchman Esteban Ocon sixth.
Haas duo Romain Grosjean and Kevin Magnussen were seventh and eighth, with France’s Pierre Gasly ninth for Toro Rosso and Sweden’s Marcus Ericsson 10th for Sauber.
McLaren’s Belgian driver Stoffel Vandoorne was last in his home race.