Valentino Rossi just managed to stay ahead of Yamaha team-mate Jorge Lorenzo and win the German MotoGP in a thrilling late battle at the Sachsenring.
The pair were separated by less than one tenth at the finish, while rivals Dani Pedrosa and Casey Stoner, who also were in with a chance to win for most of the race ended up around three and ten seconds behind respectively.
Rossi made a fine start from pole to keep the lead at the first corner, followed by Pedrosa's Honda, which made another super start from eighth on the grid, and Randy de Puniet, who crashed his LCR Honda a few corners later.
The Gresini Honda of Alex de Angelis was right behind, ahead of Lorenzo and a quick-starting Andrea Dovizioso, who qualified his Honda 11th. But after a brief stint in fourth place, the latter's performance went down with tyre wear problems that led to his retirement on lap 25.
Stoner took the lead from Rossi on lap seven, two laps after having overtaken Pedrosa for second, but he was not able to open up a gap on the reigning champion and was passed back by the Italian ten laps later, with Lorenzo also overtaking Stoner on lap 18.
With five laps of the 30-lap race left, the first corner saw Lorenzo taking the lead from Rossi and Pedrosa passing Stoner for third, after which the Australian gave up and was not a factor for the win anymore, while Pedrosa managed to keep the gap around one second for a while longer.
Rossi managed to out-brake Lorenzo at the beginning of the penultimate lap, and despite a few attempts by the Spaniard to take the lead back, there was nothing he could with Rossi defending the line on the last lap.
De Angelis had a solitary run to fifth, followed by team-mate Toni Elias a long way back after a charge from the back of the grid. Marco Melandri had a fine seventh place with his Hayate Kawasaki, with Ducati's Nicky Hayden classified eighth after being forced wide at the first corner and Tech 3 Yamaha team-mates Colin Edwards and James Toseland rounding up the top ten.
Pos Rider Bike Time/Gap 1. Valentino Rossi Yamaha 41m21.769s 2. Jorge Lorenzo Yamaha + 0.099s 3. Dani Pedrosa Honda + 2.899s 4. Casey Stoner Ducati + 10.226s 5. Alex de Angelis Gresini Honda + 21.522s 6. Toni Elias Gresini Honda + 30.852s 7. Marco Melandri Hayate Kawasaki + 31.301s 8. Nicky Hayden Ducati + 31.726s 9. Colin Edwards Tech 3 Yamaha + 32.865s 10. James Toseland Tech 3 Yamaha + 43.926s 11. Loris Capirossi Suzuki + 57.375s 12. Niccolo Canepa Pramac Ducati +1m00.539s 13. Chris Vermeulen Suzuki +1m03.645s 14. Mika Kallio Pramac Ducati +1m04.155s 15. Gabor Talmacsi Scot Honda + 1 lap Retirements: Andrea Dovizioso Honda 25 laps Randy de Puniet LCR Honda 0 laps