Charles Leclerc survived a late throttle scare to win the Austrian Grand Prix for Ferrari on Sunday and roar back as Formula One world championship leader Max Verstappen's closest rival.
Red Bull's Verstappen had to settle for second, still with a comfortable 38-point lead over the Monegasque after 11 of 22 races and banking a bonus point for fastest lap on top of his Saturday sprint win.
Mercedes' seven-times world champion Lewis Hamilton was a distant third, after starting eighth, to complete the podium for the third race in a row.
"Oh my God. I was scared. I was really scared," said a relieved Leclerc over the radio after taking the chequered flag at the Red Bull Ring with Verstappen in his mirrors and one and half seconds behind.
He overtook the Dutch driver three times on track in the race but, after two engine failures in the previous five, feared the win might still slip through his fingers as he battled a throttle problem over the last few laps.
"It would get stuck at 20 or 30% throttle in the low speeds, so it was very tricky. We managed to make it stick until the end and I am so happy," said Leclerc.
"I definitely needed that one. The last five races have been incredibly difficult for myself and for the team. To finally show that we have the pace in the car and we can do it is incredible."
Leclerc's Spanish team mate Carlos Sainz, a first time winner at Silverstone last weekend, had already retired with a fiery engine failure.
Flames erupted from the rear of the car as he pulled off with 14 laps to go while chasing a likely Ferrari one-two. Sainz tried to scramble clear but the car began rolling backwards before a marshal stopped it and extinguished the fire.
Championship leaders Red Bull also suffered a retirement with Verstappen's team mate Sergio Perez, second overall going into the race, damaging his car in a first lap collision with Mercedes' George Russell and stopping on lap 26.
Russell ended up fourth despite a five-second penalty for causing the collision.
The win was Leclerc's third of the season, fifth of his career and first since Australia in April as well as the first time he was won from anywhere other than pole position.
For Ferrari it was the second in a row, after a run of six successive Red Bull wins, and first in Austria since Michael Schumacher in 2003.
The Italian team are now 56 points behind Red Bull.
Verstappen had been chasing his fourth Austrian GP win in five years, with his Orange Army out in their tens of thousands to cheer him on. Organisers put the weekend attendance at 303,000.
"Unfortunately I couldn't give them a win today but second place is still a good result," he said.
Alpine's Esteban Ocon was fifth, ahead of Mick Schumacher -- who scored the first Formula One points of his career at Silverstone last weekend -- in sixth for Haas. The German was voted driver of the day.
Lando Norris finished seventh for McLaren ahead of Haas's Kevin Magnussen and McLaren's Daniel Ricciardo with Alpine's Fernando Alonso taking the final point after starting last on the grid.
The starting grid was set by the sprint, the second of the season, won by Verstappen from pole position with Leclerc second. The top eight in that race took points.
Verstappen led from the start on Sunday, with Leclerc in close pursuit as Perez and Russell tangled with the Mexican spinning into the gravel.
Leclerc passed the Red Bull on lap 12, diving down the inside of turn four, with Sainz moving up to second after Verstappen then pitted and came back out in eighth.
The lead changed hands again through the pitstops before Leclerc, who had pitted and was on fresher tyres, passed Verstappen for the third time on lap 53.
Sainz's engine failure then triggered a virtual safety car and set up a nail-biting finish.