Lando Norris claimed his first Mexico Grand Prix win, regaining the drivers' world championship lead for McLaren ahead of Charles Leclerc and Max Verstappen in a thrilling race.