The only thing missing from Verstappen's 17th career win was a bonus point for fastest lap, which went to Hamilton.
Verstappen's winning margin of 21 seconds over Hamilton was exaggerated because the British driver had to pit again to wrestle back that point from Bottas. A rare blip by Mercedes saw Bottas told to abort his bid for fastest lap, but it was too late and forced Hamilton to retrieve it.
After the race, a jubilant Verstappen grabbed a Dutch flag and lifted it high toward his adoring supporters as they celebrated together.
"The expectations were high and it's never easy to fulfil that," Verstappen said. "But I'm so happy to win here and to take the lead as well in the championship. It's just an amazing day with the whole crowd."
Verstappen's devoted home fans turned the stands by the seaside town into an orange sea of bodies. Orange flares were lit, and feet were stamped as Verstappen turned to the crowd with a clenched fist after a clinical drive.
AlphaTauri driver Pierre Gasly placed fourth ahead of Ferrari's Charles Leclerc and Alpine driver Fernando Alonso.
Verstappen started from pole position for the sixth time in the past seven races, courtesy of a brilliant qualifying session.
Hamilton and Bottas were just behind, but Verstappen zoomed clear of them on the speedy 4.3-kilometer (2.7-mile) Zandvoort with its high-banking corners.
"The start was very important, I think we did that well," he said. "Mercedes tried to make it difficult for us, but we countered them all the time really well."
Team principal Christian Horner called Verstappen's drive "epic" and hugged team engineers and mechanics in the paddock.
With Red Bull having more pace, Mercedes exerted pressure with strategy.
Hamilton changed tires on Lap 21, with Red Bull covering that move by bringing Verstappen in straight away. He came out about 2 seconds ahead of Hamilton, leaving Bottas in the lead.
"It's going to be critical to catch and pass (Bottas)," the Red Bull team told Verstappen on the radio.
They roared when Verstappen overtook Bottas on Lap 31, with Hamilton passing Bottas to move 1.5 seconds behind Verstappen at the halfway point.
Mercedes brought Hamilton in for a second tire change on Lap 40 in a bid to undercut Red Bull. It didn't work, as Red Bull's slick stop one lap later put Verstappen 3 seconds ahead.
"Doesn't seem to be an advantage, (Red Bull) called our bluff," a frustrated Hamilton said. "They're just so fast."
Hamilton disagreed with a team order on Lap 55 to preserve the tires rather than risk damaging them by chasing too hard.
"What, and don't race?" asked Hamilton, who got the go-ahead to continue.
But he couldn't get close enough to attack Verstappen, who coasted home to rapturous celebrations from his Orange Army.
He will look to carry his momentum into the Italian GP at Monza next weekend, where Hamilton again seeks a record-extending 100th win after being thwarted for three races since winning the British GP.
The seven-time F1 champion was in a gracious mood.
"What a race, what a crowd. It's been an amazing weekend," said Hamilton, who was applauded having been jeered by Vertappen's fans in previous races. "Max did an incredible job so a huge congratulations to him. I gave it absolutely everything."
He leaves the Zandvoort track with fond memories.
"The last lap was one of the best parts of the race for me," Hamilton added. "This is now one of my favorite tracks."
Even better than Silverstone?
"I mean, the British one is naturally my favorite," Hamilton said. "Where I think this track is probably better than Silverstone is that at Silverstone the grandstands are so far away. You need binoculars, but here they are right on the track."