Red Bull's Max Verstappen won the French Grand Prix on Sunday and took a huge stride towards his second Formula One title after Ferrari's Charles Leclerc made a costly mistake and crashed out while leading.
Seven-times world champion Lewis Hamilton finished second for Mercedes in his 300th grand prix, with team mate George Russell third to secure their first podium double of the campaign.
The victory on a hot afternoon at Le Castellet was Verstappen's seventh of the season and 27th of his career.
It also left him a hefty 63 points -- more than two race wins -- clear of closest rival Leclerc at the top with 10 rounds remaining.
"I think we had really good pace from the start, I was putting pressure on Charles," said the Dutch 24-year-old, who also won at the southern Circuit Paul Ricard last year.
"Following around here, with this heat, the tyres are overheating a lot so I could never really go for a move - only once."
Leclerc had led away cleanly from pole position, with Verstappen close behind but needing six laps before he could get close enough to attempt a move.
While he pulled closer on the straights, Leclerc had an advantage through the corners and managed to remain just out of reach.
The Ferrari then appeared to be pulling away, but with some concern about tyre wear, as Verstappen made his first pitstop. And then it all changed on lap 18.
The Ferrari driver screamed in rage and frustration over the radio after his car spun mid-corner and plunged into the tyre barrier at the 11th corner, Le Beausset.
The Monegasque, hurting inside but otherwise intact, blamed only himself.
"I've been saying I think I'm performing at my highest level in my career but if I keep doing those mistakes then it's pointless to perform at a very high level," he told Sky Sports television. "I'm losing too many points."
The safety car was deployed briefly but from then on Verstappen was able to do his race and look after the tyres without much trouble.
Red Bull's Sergio Perez finished fourth, losing out to Russell three laps from the end and complaining over the radio that the Briton had repeatedly gone off.
Carlos Sainz was fifth for Ferrari after starting on the back row due to engine penalties and storming back through the field with a bonus point for fastest lap.
Sainz could have finished higher, having got himself up into the podium places, but the Spaniard had to serve a five-second penalty for an unsafe release in the pits.
Fernando Alonso was sixth for Renault-owned Alpine, ahead of McLaren's Lando Norris.
Alpine's Esteban Ocon was eighth, McLaren's Daniel Ricciardo ninth and Lance Stroll took the final point in 10th for Aston Martin.