Valtteri Bottas withstood a late-race charge from Sebastian Vettel to score the first victory of his grand prix career.
The Mercedes driver passed both Ferrari drivers for the lead at the start of the race but had to hold off a flying Vettel in the final laps of the race. The pair crossed the finishing line separated by just six-tenths of a second.
Kimi Raikkonen completed the podium while Lewis Hamilton finished a distant fourth, 25 seconds behind his team mate, after losing ground early in the race as his car was overheating.
Max Verstappen finished fifth for Red Bull after team mate Daniel Ricciardo retired early on with brake failure. The Force India pair of Sergio Perez and Esteban Ocon rose to sixth and seventh following a late pit stop for Felipe Massa, who had a puncture. He ended up ninth behind Nico Hulkenberg.
The final point went to Carlos Sainz Jnr. Lance Stroll claimed the first finish of his career with eleventh but missed the points after spinning on the first lap.
Fernando Alonso didn’t even make it that was as his McLaren broke down on the formation lap. Jolyon Palmer and Romain Grosjean also dropped out after colliding at the start.