Fabio Quartararo produced a thrilling ride to claim a resounding victory at the Catalonia MotoGP on Sunday, his third of the season which sends him top of the world championship standings.
Joan Mir, on a Suzuki, came through to take second and is now eight points behind Quartararo in the standings, while Alex Rins completed the podium.
The race began in dramatic fashion with Andrea Dovizioso, who led the title race by a single point from Frenchman Quartararo and Maverick Vinales, was taken out in the opening lap after tangling with Johann Zarcho.
Quartararo, on a Yamaha, won the opening two races of the season but has struggled since then, failing to reach the podium in the last five races.
But the 21-year-old, who showed signs of a return to form in last week's Emilia-Romagna MotoGP when he came fourth, was back to his best in Barcelona, although his bike almost blew the race.
"The race was very hard for me," said Quartararo.
"My back tyre was completely wrecked and we knew how strong the Suzukis were.
"I am not completely 100 percent but I went step by step and I am very happy with this win.
"I suffered in my head a lot in the last month, not getting on the podium, it wasn't easy."
Starting from pole, alongside the fellow Yamahas of Franco Morbidelli and Valentino Rossi, he set a fierce pace which put the pressure on the field, especially those trying to close him down.
One who suffered was Rossi, who had taken advantage of a wobble by Morbidelli with 11 laps to go to move into second spot. Two laps later, however, trying to make up ground on the flying Quartararo, the 41-year-old slid into the gravel on turn two, his race over.
Morbidelli, who won in San Marino two races ago, looked good to take second but could not hold off Mir who swept past him with two laps to go.
"We had a great race," said Mir whose second place puts him within touching distance of Quartararo.
"We needed one more lap as I could see that Fabio was losing ground but I couldn't catch him," said Mir.
Morbidelli then lost his place on the podium as Rins, who started down in 13th, put the gloss on an excellent race.
Quartararo heads the standings with 108 points, eight clear of Mir.
- Marini dominates Moto2 -
Moto2 championship leader Luca Marini, on a Kalex, tightened his grip on the title race with a pole to line victory which marked the Italian's third win of the season.
Britain's Sam Lowes finished second with 21-year-old Italian Fabio Di Giannantonio in third for his first podium of the year.
Marini now holds a 20-point lead in the title race ahead of fellow Italian Enea Bastianini, who finished sixth.
The South African Darryn Binder took his first win in Moto3 as two of the main world title contenders, Albert Arenas and John McPhee, both had to abandon.
The 22-year-old Binder, whose older brother Brad rides for KTM in MotoGP, started way back in 20th position on the grid but came through to take the victory ahead of the Italians Tony Arbolino and Dennis Foggia.
"It is an extraordinary feeling. I have waited a long time but today I did everything I could," said Binder, who rides for the CIP Green Power team.
Japanese rider Ai Ogura finished 11th and leads the championship, three points ahead of Arenas.