The Dutchman won from ninth on the grid, after losing out on a shot to set a qualifying time on Saturday after botching his first run, and was denied a further chance by Charles Leclerc’s late-session crash.
He was equipped with the hard tyre on a contra-strategy to Perez, who began the race from pole position on the medium compound, and the Mexican made sure to stay ahead of fellow front-row starter Fernando Alonso.
But the two-time champion settled in, quickly dispatching the brace of cars ahead by the end of the second lap. Further quickfire passes on Leclerc and Kevin Magnussen, who were embroiled in a delectable scrap over sixth place, got Verstappen closer to the front of the field.
A series of fastest laps in the early stages then continued to bring Verstappen back into play, and he got a tow from George Russell with DRS to dive past at Turn 17 on the eighth lap of the race as the Briton complained of vibrations under braking.
Pierre Gasly was next up on the following lap and proved easy pickings at the popular Turn 17 hairpin, moving Verstappen into the top four by the end of lap 10.
It took a comparative age for him to get onto the back of Carlos Sainz, but Verstappen cleared the Spaniard on the 14th lap as Sainz had DRS from Alonso ahead to offer a token defence.
Alonso was also dispatched on the next lap with Perez now 3.6s ahead in the lead, but the Mexican reported that the front right tyre was beginning to give up as the mediums began to chafe in the hot Miami conditions.
Verstappen wound the gap down to 2.2s before Perez came in to trade his aged mediums for a set of hard tyres on lap 20, handing the #1 car the lead, and it became a case of both cars managing their hard tyres.
Perez had the harder job of attempting to close down an 18-second disadvantage to Verstappen, who simply had to maintain the gap prior to his pitstop for medium tyres later in the race.
By lap 32, Perez had the gap down to 14.8s, but Verstappen then began to pick up the pace and managed to ensure the gap could grow once again over the next 13 laps.
Verstappen then eventually called in for medium tyres 12 laps from the end, having extended the gap to 18.3 seconds, but briefly ceded the lead to his team-mate and emerged 1.6s behind once the pitstop was complete.