Cape Town - Sebastian Vettel, hampered by a "hanging" steering, kept Kimi Raikkonen at bay to win the Hungarian GP, his first race win since May.
Fighting for position, Max Verstappen locked up and understeered into Daniel Ricciardo at Turn 2, damaging his team-mate's RB13. With his car losing fluid, Ricciardo spun at Turn 4 and retired. "Is that who I think it was?" Ricciardo asked over radio. "Yeah." "Sore loser."
Verstappen was handed a 10-second time penalty for the incident. Nico Hulkenberg and Romain Grosjean also clashed, both cleared of any wrongdoing by the stewards.
The Safety Car pitted at the end of lap 5 with Kevin Magnussen telling Haas that it is "going to be a dirty race" based on those lap 1 incidents. That, though, was were the drama began and ended - or so it seemed.
Vettel, who started on pole position, dominated the first half of grand prix as he pulled away from the chasing pack, led by his own team-mate Kimi Raikkonen.
However, the German began to lose time to Raikkonen and reported that his steering was "hanging to the left, it's getting worse." At the same time Mercedes were reporting IT problems with both cars that meant radio issues and a lack of clear communication.
The pit stops, played out between lap 31 and 42 for the top five - with Verstappen the last to pit, saw Vettel only just manage to retake the lead from Raikkonen, who had pitted after him. The running order: Vettel; Raikkonen; Bottas; Hamilton and Verstappen.
But with Vettel's troubles continuing and Raikkonen showing more pace, Ferrari faced a conundrum: let the faster driver pass the championship leader or get Raikkonen to play rear gunner to protect Vettel.
Mimicking Raikkonen, Hamilton was asking Mercedes to help him pass Bottas, saying he had pace to spare but wasn't able to use it given that his team-mate in the same car was the man ahead.
But while Mercedes did ask Bottas to move over for Hamilton, Ferrari did not give Raikkonen his wish. Hamilton immediately pulled away from Bottas and closed in on Raikkonen. "Lewis, we have five laps to make something of this." He responds: "No pressure, then."
With 15 laps remaining in the 70-lap race, Vettel, Raikkonen and Hamilton were separated by just two seconds. Proving how difficult it is for this year's cars to overtake, neither Raikkonen nor Hamilton were able to make a move.
They raced to the flag with Vettel taking the win, his first since May's Monaco Grand Prix, ahead of Raikkonen. As such the German's lead in the championship race is up to 14 points.
Bottas was third as Mercedes made a late switch back on the line with Hamilton fourth ahead of Verstappen.
Fernando Alonso, who set the fastest lap of the grand prix, won the battle of F1's Spaniards as he beat Carlos Sainz to sixth place while Sergio Perez got the better of Esteban Ocon in Force India's intra-team battle.
Stoffel Vandoorne made it two McLarens inside the top ten with a P10 finish, his first point of the championship.
Romain Grosjean retired on lap 23 when, having pitted for fresh tyres because of a puncture, Haas reported that he had a "crossed wheelnut" and needed to slowly head back to the pits. He pulled over on the side of the track and retired the car.
Paul di Resta's race ended on lap 63 when the Williams reserve, in for the unwell Felipe Massa, was told to pit as there was a problem with the car. He was P18 and last by eight seconds when he stopped.
1 Sebastian Vettel Ferrari 1:39.46.713
2 Kimi Raikkonen Ferrari 0.9
3 Valtteri Bottas Mercedes 12.4
4 Lewis Hamilton Mercedes 12.8
5 Max Verstappen Red Bull 13.2
6 Fernando Alonso McLaren 71.2
7 Carlos Sainz Toro Rosso 1 lap
9 Esteban Ocon Force India 1 lap
10 Stoffel Vandoorne McLaren 1 lap
11 Daniil Kvyat Toro Rosso 1 lap
12 Jolyon Palmer Renault 1 lap
13 Kevin Magnussen Haas 1 lap
14 Lance Stroll Williams 1 lap
15 Pascal Wehrlein Sauber 1 lap
16 Marcus Ericsson Sauber 1 lap
17 Nico Hulkenberg Renault 1 lap
Did not finish
Paul di Resta Williams technical
Romain Grosjean Haas crossed wheelnut
Daneil Ricciardo Red Bull accident