Sepang - Spain's Maverick Vinales stormed to a dominant victory in the Malaysian MotoGP Sunday as world champion Marc Marquez fought his way from near the back of the starting grid to finish second.
Ducati rider Andrea Dovizioso came in third but there was disappointment for French rookie Fabio Quartararo, who only managed a lacklustre seventh-place after starting from pole.
Vinales's second win of the season was a major boost following last week's Australian MotoGP, where he crashed out after leading for much of the race - and compatriot Marquez went on to win.
The Monster Energy Yamaha rider said the victory felt "amazing" after his disappointing performance in Phillip Island.
"In Phillip Island, I felt like I had the victory in my hands but I made a mistake and I crashed," he told reporters at the Sepang circuit following the penultimate race of the season.
"Here all weekend I've been very consistent. I knew if I got first place I had a chance to push, push and push."
The 24-year-old surged into an early lead at Sepang after starting second on the grid and never looked threatened.
By the halfway mark, he had opened up a two second lead over second-placed Marquez, and was over three seconds ahead of him when he crossed the finish line.
Marquez's performance was even more astonishing, however, after he started 11th on the grid following a terrifying crash in qualifying that saw him thrown from his bike.
Within a few laps the Repsol Honda rider, who was crowned world champion for the sixth time last month, had smashed his way through the pack and was trying to chase down Vinales.
While he did not manage to catch his compatriot, Marquez nevertheless opened up a sizeable gap with the rest of the field and cruised to a comfortable second place.
The 26-year-old said the first lap, which catapulted him to the front, was "incredible" and congratulated his team for the good result.
"We started from 11th, and we cannot forget that here normally we struggle a lot," he said.
As well as the rider's title, Marquez has helped secure the constructor's championship for Honda this season.
And on Sunday, he added another record to his list - the most points scored in a season in motorcycling's premier class.
He has now racked up 395, higher than the previous record of 383 held by three-time world champion Jorge Lorenzo.
There was a tough fight for third place between Italy's Dovizioso, who won at Sepang in 2016 and 2017, and nine-time world champion Valentino Rossi.
Rossi managed to push past Dovizioso on several occasions, only for the Ducati rider to snatch the lead back and finish just ahead of his compatriot.
Quartararo had dominated all weekend going into the MotoGP, topping the timesheets in practice and smashing the Sepang lap record, before seizing his fifth pole position of the season.
The 20-year-old Petronas Yamaha rider had been aiming for his maiden MotoGP victory - but in the event, he was no match for his more experienced rivals and fell to the back right at the start.
The MotoGP in tropical Malaysia has often been disrupted by torrential downpours in previous years but the rain stayed away this year for the whole weekend.
In the Moto2 class, Alex Marquez - Marc's younger brother - was crowned world champion after finishing second in his race Sunday.
Results and standings after the Malaysian MotoGP at Sepang, the 18th of the 19-round world championship series, on Sunday:
1. Maverick Vinales (ITA/Yamaha) 40 min 14.632 sec, 2. Marc Marquez (ESP/Honda) at 3.059sec, 3. Andrea Dovizioso (ITA/Ducati) 5.611, 4. Valentino Rossi (ITA/Yamaha) 5.965, 5. Alex Rins (ESP/Suzuki) 6.350, 6. Franco Morbidelli (ITA/Yamaha-SRT) 9.993, 7. Fabio Quartararo (FRA/Yamaha-SRT) 12.864, 8. Jack Miller (AUS/Ducato-Pramac) 17.252, 9. Danilo Petrucci (ITA/Ducati) 19.773, 10. Joan Mir (ESP/Suzuki) 22.854
World championship standings:
1. Marc Marquez (ESP/Honda) 395 pts, 2. Andrea Dovizioso (ITA/Ducati) 256, 3. Maverick Vinales (ESP/Yamaha) 201, 4. Alex Rins (ESP/Suzuki) 194, 5. Danilo Petrucci (ITA/Ducati) 176, 6. Fabio Quartararo (FRA/Yamaha-SRT) 172, 7. Valentino Rossi (ITA/Yamaha) 166, 8. Jack Miller (AUS/Ducati) 149, 9. Cal Crutchlow (GBR/Honda) 133, 10. Franco Morbidelli (ITA/Yamaha) 115
1. Brad Binder (RSA/KTM) 38min 7.843sec, 2. Alex Marquez (ESP/Kalex) at 0.758sec, 3. Thomas Luethi (SUI/Kalex) 2.683, 4. Xavi Vierge (ESP/Kalex) 6.646, 5. Jorge Navarro (ESP/Speed up) 7.114
1. Alex Marquez (ESP/Kalex) 262 pts, 2. Brad Binder (RSA/KTM) 234, 3. Thomas Luethi (SUI/Kalex) 230, 4. Jorge Navarro (ESP/SpeedUp) 210, 5. Augusto Fernandez (ESP/Kalex) 197
1. Lorenzo Dalla Porta (ITA/Honda) 38min 1.355sec, 2. Sergio Garcia (ESP/Honda) at 0.410sec, 3. Jaume Masia (ESP/KTM) 0.803, 4, Ai Ogura (JPN/HONDA) 0.885, 5. Celestino Vietti (ITA/KTM) 0.902
1. Lorenzo Dalla Porta (ITA/Honda) 279 pts, 2. Aron Canet (ESP/KTM) 190, 3. Tony Arbolino (ITA/Honda) 175, 4. Marcos Ramirez (ESP/Honda) 174, 5. John McPhee (GBR/Honda) 156