Hamilton and teammate Valtteri Bottas pulled a big surprise in qualifying when the Mercedes teammates earned their first front-row lockout of the season. Bottas was on pole, Hamilton second and Verstappen and Perez in third and fourth.
Their advantage didn't last through the first corner.
Verstappen bolted off his line at the start and used the slip stream behind Bottas to snatch the lead into the first corner. Bottas, meanwhile, got tapped by McLaren's Daniel Ricciardo and his car spun, dropping him to the back.
That left Hamilton in a Red Bull sandwich: Verstappen in front and Perez right behind, with Bottas no longer in play to help him defend his position.
And barely a third into the race, Verstappen was zooming off into the distance and Hamilton found himself in a desperate race with Perez to keep the critical championship points needed to keep Verstappen within sight over the final month of the season.
The home crowd roared when Perez briefly led after Hamilton and Verstappen pitted for new tires. That made him the first Mexican driver to lead the Mexico grand prix in race history. Perez earned a third straight podium finish for the first time in his career.