Norris had been running sixth in the early stages of the race, but everything changed when the Safety Car was deployed on lap 29 after Kevin Magnussen tangled with Logan Sargeant at Turn 3, sending both into the barriers.
Crucially for Norris, he was the only one of the leading runners not to have changed tyres by this point, and was thus able to pit without losing the lead he had inherited as others had pitted, reports Xinhua.
When racing resumed on lap 33, Norris had the pace to hold off the threat from Red Bull's Verstappen, and managed the gap for the rest of the race to score a fairy-tale first Grand Prix win on his 110th start.
"About time, huh?" said Norris, who had lost a potential debut win at the 2021 Russian Grand Prix when a late rain shower had caught him out as he was leading the race.
"What a race, it's been a long time coming but finally I've been able to do it. I'm so happy for my whole team, I've finally been able to deliver for them. A long day, a tough race, but finally on top so I'm over the moon.
"The whole weekend has been good. I've had a few setbacks along the way. I knew on Friday we had the pace and just a couple of mistakes here and there but today we managed to put it together, we put the perfect strategy, it all paid off."
McLaren had brought upgrades to Miami, and Norris had shown genuine pace on his way to victory, crossing the line 7.6 seconds ahead of the previously dominant Verstappen. The Dutchman, who had won Saturday's Sprint event and led the early stages of the Grand Prix, also cut the chicane on lap 22 and struck a plastic bollard, with Red Bull saying the incident cost him some performance.
Behind the top two, Ferrari's Charles Leclerc rounded out the top three, with teammate Carlos Sainz fourth after overtaking Norris' teammate Oscar Piastri, who subsequently needed to pit for a new front wing, ruining his chances of points.
Verstappen's teammate Sergio Perez had a low-key run to fifth place, ahead of Mercedes' Lewis Hamilton in sixth.
Yuki Tsunoda had a fine drive to seventh in his RB, with Hamilton's teammate George Russell following in eighth.
Fernando Alonso took ninth for Aston Martin, and Esteban Ocon scored the beleaguered Alpine squad's first point of 2024 with tenth place.
Despite being beaten to victory, Verstappen extends his lead in the Drivers' Championship and now has 138 points. Perez remains second on 101 points, and Leclerc is third on 98.
Red Bull remain top of the Constructors' Championship with 237 points. Ferrari are second with 189 points, with McLaren third with 127.
The seventh round of the 2024 F1 World Championship is the Emilia Romagna Grand Prix in Imola, Italy on May 19.