Lando Norris won the Sao Paulo sprint race in a McLaren one-two on Saturday to cut Max Verstappen's Formula One lead to 45 points.