Ferrari's Charles Leclerc held off the challenge of Max Verstappen to win the Austrian Grand Prix at the Red Bull Ring on Sunday.
Leclerc passed title rival Verstappen three times during the race on the way to a victory that revives his championship hopes.
Ferrari were denied a likely one-two at the front when Carlos Sainz suffered engine failure with 14 laps to go, with his car rolling to a halt and flames erupting from the rear.
Verstappen's teammate Sergio Perez, who had been second overall, also retired with a damaged car after a first lap collision with Mercedes' George Russell.
Lewis Hamilton finished third for the third race in a row with teammate Russell fourth.
Verstappen picked up a bonus point for fastest lap to go with the eight points he took by winning Saturday's sprint race.
Leclerc was clearly stressed in the closing laps as his throttle was not working properly, making it more difficult to control his speed into turns.
“Yes. Come on!” Leclerc screamed on team radio after crossing the line. “I was scared. I was really scared. Yessss!”
The Monaco driver held on to beat second-place Verstappen by 1.5 seconds.
“It was a really good race, the pace was there and the end was incredibly difficult with the throttle problem, but we managed to make it stick until the end,” Leclerc said
“Weirdly, my problem was at the same time as Carlos, but I knew it was a pedal problem rather than an engine problem.
“I definitely needed that one. The last five races have been difficult for me and the team and it is great to finally get one.”
Leclerc cut Verstappen's championship lead to 38 points and it moves him back ahead of Red Bull's Sergio Perez to second in the standings.
“It was a tricky day,” said Verstappen, who had the backing of more than 60,000 Dutch fans all wearing orange.
“It seemed like we were struggling quite a bit with the tyres, too much degradation to attack Charles. Nevertheless, second place is a good result for us on a difficult day.
“It's great to see so many fans coming to Austria, unfortunately I couldn't give them a win but second is still a great result.”
For Hamilton and Mercedes, there are more signs of improvement in what has been a troubled season.
“What an incredible crowd, it has been a difficult weekend, a rough weekend, but we take the points and move forward,” said the Briton.
“I want to say a big thank you to the guys in the garage, I am so thankful to them for working so hard. We have made some improvements and we will keep chipping away at them.”
As for Sainz, who won his first F1 race in the British Grand Prix last weekend, his engine failure was the latest in a series for Ferrari this season.
“I knew there was something wrong as soon as it happened,” said the Spaniard. “There was no feedback that it was about to happen. It was very sudden and it is hard because it was a big loss of points and a potential one-two for the team.
“I saw a lot of fire and damage and we will have to look at why this is. It is more difficult to take because we were about to bring in a very big result to cut the gap to Max and Red Bull, but it is still a long season ahead.”
Alpine's Esteban Ocon was fifth, ahead of Mick Schumacher – who scored the first F1 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 in 10th.