It was Vettel's fifth win of the season, the second from three GPs, and 31st of his outstanding career.
Fernando Alonso drove brilliantly from ninth on the grid to take second place ahead of Hamilton and move back into second overall in the title race.
Speculation heading into Spa was of Hamilton emerging as the biggest threat to Vettel's bid for a fourth straight title, but within one minute Vettel dismissed that talk with a slick passing move inside Hamilton's left. The German was never troubled after that.
"When the car works well you don't want the race to stop," Vettel said. "I was very comfortable at the end and the car was just a pleasure to drive."
Vettel started from second on the grid after Hamilton secured his fourth straight pole position.
Vettel, who finished 16.8 seconds ahead of Alonso and nearly 30 ahead of Hamilton, pumped his right fist and then wagged his finger aloft -- reminding everyone who really is No. 1 and admonishing those who had doubted him.
"For sure it's a positive message today," Vettel said. "The car was much better than we expected before the race. Looking forward to Monza now."
Hamilton had become the first Briton since Damon Hill in 1995 to win four straight poles and sat on the front row for the seventh consecutive race and eighth in nine.
Vettel has not secured a pole since winning the Canadian GP in June. But it made little difference. Within one minute he was in front as the much-anticipated rain around the Ardennes forest stayed away.
"I tried my best to line up behind Lewis," Vettel said. "Once I passed him I had incredible pace and took control until the end."
Although Hamilton made a good start and held his line at the first turn into La Source turn, Vettel moved into the slipstream of his Mercedes and surged past him down the Kemmel straight.
"Half-decent start and got a good exit out of turn one. But Sebastian just caught me massively," Hamilton said. "There was no defending really, I just had to watch him glide by."
Alonso, meanwhile, looked like he was on a mission as he carved through the field, zooming past last year's Spa winner Jenson Button and Rosberg to move into third.
"Everything went OK from the start, the car had the speed to overtake some cars," Alonso said. "The weekend was good for us ... We felt more competitive."
After earning a one-race ban for reckless driving at last year's Spa GP, where his dangerous driving sent three drivers off the track at the first turn, Frenchman Romain Grosjean made a noticeably conservative start and seemed desperate to avoid even the slightest contact.
Shortly after, Sergio Perez was given a drive-through penalty for forcing Grosjean wide.
"He pushed me completely off the track," said Grosjean, who is trying to repair his reputation after several dangerous driving incidents last season.
Hamilton was the first of the front-runners to pit for new tires, followed by Alonso, but Vettel stayed out three laps longer than Hamilton -- who was held up by traffic when he came out, enabling Alonso to move past him into second.
Halfway through the 44-lap circuit -- the longest in F1 at 4.352 miles and the most difficult along with Monaco -- Vettel led Alonso by more than eight seconds.
Kimi Raikkonen, second overall heading into the race, had to abandon on lap 26 with smoke coming from his front right brake, finishing the Finn's remarkably consistent run of scoring points in 27 consecutive races.
The nose of Maldonado's Williams nudged into di Resta's Force India, sending it spinning off the track. Maldonado was given a 10-second stop and go penalty.
Di Resta, the British driver who had high hopes after qualifying in an impressive fifth place, looked disconsolate as he trudged off, helmet in his hand and his race over.
Alonso pitted for the second time shortly after and Vettel made his second tire change a couple of minutes later.
Before the race, protesters from the environmental group Greenpeace staged a brief demonstration against race sponsor Shell's plans to drill in the Arctic.
Two paragliders flew over the circuit, trailing a banner, and others then climbed onto the grandstand roof and unfurled a 20-meter long banner that read "ARCTIC OIL? SHELL NO!"