Verstappen, only 18 and making his debut for the former world champions after being promoted from junior team Toro Rosso a week earlier, beat Ferrari’s Kimi Raikkonen - at 36 twice his age - by 0.616 seconds.
Verstappen was also the youngest driver to stand on the podium and the first Dutch race winner since the championship started in 1950.
His proud father Jos, who was twice on the podium with Benetton as Michael Schumacher’s team mate in 1994 and raced against Raikkonen later in his career, declared it the best day of his life.
“This is really something unbelievably special,” he told reporters while others acclaimed an exceptional talent.
Four-times world champion Sebastian Vettel, the previous youngest race winner thanks to his astonishing 2008 Italian Grand Prix victory for Toro Rosso at the age of 21, was third for Ferrari.
Rosberg had his lead trimmed to 39 points, with Raikkonen moving up to second ahead of Hamilton.
The German’s dream of an eighth successive win, and fifth of the season, had disappeared in the gravel on the opening lap as he and reigning champion Hamilton crashed out while battling for the lead.
That looked like being the talking point of the day at a circuit that has seen processional races in the past, until Verstappen rewrote the script.
His was a remarkably assured performance for a youngster who could not drive on public roads until last year and whose precocious entry into the sport was questioned by many.
“I was targeting a podium but to win straight away is an amazing feeling,” said Verstappen, who had qualified fourth with Australian team mate Daniel Ricciardo third.
Ricciardo might have joined him on the podium but a late puncture left him fourth.
“I can’t ever remember seeing a debut performance like that,” gushed Red Bull team principal Christian Horners, with the energy drink brand’s billionaire owner Dietrich Mateschitz also in attendance.
“The kid’s just done an unbelievable job. Max hasn’t put a wheel wrong all weekend. To win the race, I don’t think anyone can have dreamed of that.”
Verstappen soaked up the moment, lingering on the podium after the Ferrari drivers had gone and holding the winner’s trophy aloft.
While Red Bull celebrated, and Ferrari rescued a race that had looked like being one to forget after Raikkonen and Vettel qualified fifth and sixth, dominant champions Mercedes were licking their self-inflicted wounds.
Triple world champion Hamilton had started on pole position, with Rosberg alongside, but their race imploded after three corners.
The German passed Hamilton around the outside of turn one and the Briton was then squeezed on to the grass as he tried to regain the lead.
His car skewed sideways and smashed into Rosberg’s, with both drivers ending up in the gravel and the safety car deployed.
“It is stupid, we could have won this race,” Mercedes’ non-executive chairman Niki Lauda told the BBC. “Lewis is too aggressive. I need to talk to them and hear their explanation and then we will see what happens.”
Mercedes motorsport director Toto Wolff refused to apportion blame, however.
“From a team’s perspective we’ve looked at the pictures and the data and it’s not clear cut. Nico had a really good turn one and turn two, Lewis tried to dive in, Nico closed the door.
“I’d say let’s wait and see what the stewards say. It’s not a situation where you can attribute 100 percent of the blame.”
The collision ended Mercedes hopes of extending the team’s winning run to 11 races and equalling McLaren’s 1988 record streak of success.
Finland’s Valtteri Bottas was fifth for Williams with Spaniard Carlos Sainz sixth for Toro Rosso. Mexican Sergio Perez was seventh for Force India and Brazilian Felipe Massa eighth for Williams.
Britain’s Jenson Button scored for McLaren in ninth with Russian Daniil Kvyat, the man who had to cede his Red Bull place to Verstappen, 10th for Toro Rosso.
Original source: Dutch teen makes F1 history