Lando Norris won the Brazilian Grand Prix after Oscar Piastri gave up first place.