Lando Norris dominated the Mexico City Grand Prix to take the championship lead from teammate Oscar Piastri for the first time in 15 rounds.