Sebastian Vettel extended his advantage in the drivers' standings to 14 points by clinging on to victory despite steering issues in a dramatic end to the Hungarian Grand Prix.
It looked like a mechanical problem could prove costly again for the German, whose championship lead was cut to just one point following a late puncture and victory for Lewis Hamilton last time out at Silverstone.
However, Vettel managed to stay clear of Ferrari team-mate Kimi Raikkonen to top the podium on his 50th start for the Italian constructor, despite the Finn repeatedly hinting over team radio he felt he should have been let through due to his superior pace.
With Valtteri Bottas failing to attack the Ferrari duo he was ordered to allow Hamilton past, but the Brit fared no better and, in a show of remarkable grace, slowed down on the final lap to allow his team-mate back into third.
Four-time world champion Vettel consequently takes a more comfortable cushion into the mid-season break, but his win is largely owed to Raikkonen for refusing to attack him and helping keep the two Mercedes at bay.
Max Verstappen was out of the running after receiving a 10-second penalty for causing a first-lap collision with team-mate Daniel Ricciardo.
That ended Ricciardo's race and brought out the safety car, with the Australian unable to hide his frustration with Verstappen, who could only manage fifth.
It was a positive day for Fernando Alonso, though, who guided his McLaren to sixth - his best finish in 2017.