Lando Norris cuts Max Verstappen's Formula 1 lead after Sao Paulo sprint win
Australian Oscar Piastri started on pole position and led until handing over two laps from the end after Verstappen passed Ferrari's Charles Leclerc for third and became an increasing threat.
The switch came just in time, with a late virtual safety car period leaving a tense final lap with Piastri finishing 0.593 behind Norris and Verstappen a further 0.904 adrift.
Verstappen was told after the finish that he was under investigation for an alleged virtual safety car infringement that could cost him a five-second penalty and drop him down to fourth.
"Oscar deserved it but we're doing what we had to do," said Norris, who started second on the grid.
"I think we were clearly quicker than the guys behind, it’s just difficult in the sprint race knowing how much to manage and push but we executed it well."
Piastri's race engineer thanked the Australian, who is out of title contention, over the radio for his "massive support to the team".
Verstappen and Leclerc had a long battle for third before the champion passed on the 18th of 24 laps and Nico Hulkenberg then triggered the virtual safety car by stopping by the side of the track in a smouldering Haas.
"I had to wait for some mistakes and luckily they came, and I could use that to my advantage," said Verstappen, who will have a five-place grid penalty for Sunday's race due to an engine change.
It was the first time this season that Verstappen has been beaten in a sprint.
Ferrari's Carlos Sainz was fifth, with George Russell sixth for Mercedes and Pierre Gasly seventh for Renault-owned Alpine while Mexican Sergio Perez secured the final point in eighth for Red Bull.
The main Sao Paulo Grand Prix is on Sunday, with qualifying later on Saturday.