125cc world champion Julian Simon won his sixth race of the 2009 season at Sepang after a superb battle with his Aspar Aprilia team-mate Bradley Smith.
Just like last week's Australian Grand Prix, the Malaysian event came down to a last lap contest between the duo, from which Simon emerged victorious, although second secured the runner-up spot in the standings for Smith.
Simon had dropped as low as fifth on the opening lap, as Efren Vazquez burst through from ninth on the grid to battle with polesiter Marc Marquez.
The two Spaniards swapped the lead repeatedly while Simon picked his way back up to third, before passing the two leaders at consecutive corners on lap two.
Smith needed a couple more laps to get past Marquez and Vazquez, by which time Simon was a second clear, but a series of fastest laps from the Briton meant that the two Aspar Aprilias were together at the front and a comfortable 4s ahead of their rivals approaching half-distance.
At first Smith - riding with a broken bone in his foot following his qualifying crash - patiently stalked Simon, before diving ahead into the final corner on lap 13.
But despite his best efforts, Smith could not break away, and relinquished the lead again three laps later when he ran slightly wide.
He charged back onto Simon's tail and was side by side with the Spaniard into Turn 9 on the last lap, but Simon held the inside and then resisted another attempt from Smith at the final corner that saw both drift wide.
Pol Espargaro surged forward from 11th on the grid to take third, emerging at the head of what had been a nine-bike battle for the final podium spot. With Simone Corsi crashing out of fourth two laps from the flag, Sergio Gadea, Nico Terol and Sandro Cortese chased Espargaro home.
Marquez and Vazquez both retired - the former suffering an engine problem and the latter falling at the last corner.
Jonas Folger had been charging through this group until making contact with Marquez on lap nine as he tried to go around the outside of the KTM at Turn 1.
The other significant crash happened on the first lap, when Danny Webb fell into the path of Stefan Bradl, taking both out. Bradl was uninjured while Webb reported leg pain.
Pos Rider Bike Time/Gap 1. Julian Simon Aprilia 42m50.916s 2. Bradley Smith Aprilia + 1.114s 3. Pol Espargaro Derbi + 6.293s 4. Sergio Gadea Aprilia + 8.003s 5. Nicolas Terol Aprilia + 8.485s 6. Sandro Cortese Derbi + 10.188s 7. Esteve Rabat Aprilia + 15.114s 8. Andrea Iannone Aprilia + 22.151s 9. Joan Olive Derbi + 26.388s 10. Lorenzo Zanetti Aprilia + 27.113s 11. Takaaki Nakagami Aprilia + 27.859s 12. Michael Ranseder Aprilia + 34.838s 13. Randy Krummenacher Aprilia + 41.829s 14. Dominique Aegerter Derbi + 42.433s 15. Luis Salom Aprilia + 51.635s 16. Elly Ilias Aprilia + 59.854s 17. Cameron Beaubier KTM + 1m07.131s 18. Jasper Iwema Honda + 1m14.171s 19. Jakub Kornfeil Loncin + 1m27.651s 20. Muhammad Zulfahmi Yamaha + 1m58.779s 21. Blake Leigh-Smith Honda + 2m06.062s 22. Quentin Jacquet Aprilia + 1 lap Retirements: Simone Corsi Aprilia 17 laps Johann Zarco Aprilia 17 laps Efren Vazquez Derbi 17 laps Luca Marconi Aprilia 14 laps Luca Vitali Aprilia 13 laps Marc Marquez KTM 12 laps Scott Redding Aprilia 10 laps Jonas Folger Aprilia 10 laps Tomoyoshi Koyama Loncin 2 laps Stefan Bradl Aprilia 0 laps Danny Webb Aprilia 0 laps