A dramatic late safety car, when Nicolas Latifi left his Williams in the barrier, set up a one-lap shootout between the pair who were tied on points heading into the last race.
Verstappen, on new tyres, braved a move on Hamilton to take the victory, his 10th of the season, and with it his first world championship.
"I kept fighting all the way to the last lap," said Verstappen. "I don't know what to say. I love the team so much, since 2016 is has been incredible.
"Finally a bit of luck for me! I want to thank Check as well, he has been an amazing team mate.
"It's insane, I'm so happy. Our goal was to win this championship and we've done it."
Hamilton, who finished second in the race and the standings added: "First of all, congratulations to Max and his team. We've all done an amazing job this season, we've worked so hard all season. I'm so proud of them all.
"We gave it everything and never gave up."