Italian Francesco Bagnaia ended a barren run by outpacing championship leader Fabio Quartararo to win the Spanish MotoGP at Jerez on Sunday.
Spaniards Aleix Espargaro and Marc Marquez took the next two places as Spaniard Alex Rins, who started the race level on points atop the standings, failed to score.
Bagnaia won six times last season as he finished second to Quartararo in the championship, but this season had finished no better than fifth.
"This is one of the most grateful wins because it comes after a long wait," he said.
At the start he shot away on his factory Ducati and stayed ahead the rest of the way.
"The best start I ever did in a race," he said.
"Today we have finally found what we were reaching for."
He said he was still battling shoulder pain but had managed it by limiting his time on track in practice and qualifying.
"It was important not to test my shoulder too much this weekend so I didn't ride many laps," he said.
Only Yamaha's Quartararo could keep pace, but after pressing in the early laps, spent the rest of the race hanging on before finishing just over a quarter of a second behind.
"He was too fast today," said Quartararo. "It was not a battle because we did not overtake, but it was intense and we enjoyed it."
"You fight all the race to try to win and at the end you do not succeed. But I know very well that these are very good points to take, I was at the limit, I could not do better.
"It's good to fight with a rider like him because I'm improving my riding."
The battle, and the overtaking, were several seconds behind as Australian Jack Miller, on another Ducati, tried to hold off the ever-aggressive Marquez, with two more Spaniards, Espargaro, on an Aprilia, lurking.
They provided breathless entertainment for a crowd of more than 60,000, the first time spectators have been permitted at the Andalusian circuit since the last pre-Covid race in 2019.
"Jerez is one of the most iconic tracks," said Espargaro. "When I saw the hillsides black with people this morning it made me feel good."
- 'This is my corner' -
Marquez overtook, but later lost control on a corner, only saving himself from another crash by elbowing down on the tarmac, while the Australian misjudged his braking.
"It has been very difficult mentally," said Espargaro who pounced. "I was much quicker than Jack and Marc and I couldn't overtake them. So I wait for a mistake. Jack missed the brakes and Marc lost the front, so I thought 'this is my corner'."
He pulled away to finish third, almost 11 seconds behind Bagnaia.
"I was very emotional on the podium, because it came to my mind that when I was 11 or 12 I was in this place but I've never been on the podium."
Quartararo pulled clear at the top of the standings, with Espargaro second.
"Very happy I'm just seven points from Fabio," said Espargaro.
Enea Bastianini, who was eighth on a Gresini-Ducati, moved into a tie with Rins, who was 19th, for third. Bagnaia climbed to fifth, 23 points behind Quartararo.
"I lost a lot of points at the start but the championship is very long," Bagnaia said.
The next race is Quartararo's home grand prix at Le Mans on May 15.
In Moto2, Japanese rider Ai Ogura, 21, led from start to finish to take his first victory in senior motorcycle racing.
Spaniard Aron Canet finished 2.5 seconds behind despite riding with a protective cast on his left arm. He underwent surgery last Monday after breaking the arm in a crash in the Portuguese Grand Prix the day before.
In Moto3, Spaniard Izan Guevara started on pole, quickly lost his lead but pounced on the final corner to take victory ahead of Gasgas team-mate and fellow Spaniard Sergio Garcia.
Garcia opened a 20-point lead over Italian Dennis Foggia who was 18th.