Po kwalifikacjach, w których Rossi uzyskał dopiero czwarty czas, Włoch powiedział że wygranie wyścigu będzie niemożliwe. Jednak zmiany jakie zostały poczynione przez noc przed wyścigiem pozwoliły mu zdominować sesję warm-up, a potem odnieść wygraną w wyścigu.
Włoch najpierw na 2. okrążeniu wyprzedził swojego kolegę z Yamahy, Jorge Lorenzo, który słabo wystartował z pierwszego pola. Szybko zbliżał się do Caseya Stonera, z którym walczył do siódmego kółka, kiedy to wyprzedził go.
Pedrosa już na samym starcie objął prowadzenie i zaczął się oddalać od reszty, więc Rossi po wyprzedzeniu Lorenzo musiał zmniejszyć tą stratę. W połowie dystansu był już na ogonie Hiszpana z zespołu Hondy. Z manewrem poczekał do szykany, kiedy to wcisnął się pod Pedrosę na 16. okrążeniu. Od tego momentu nikt nie mógł utrzymać jego tempa i Włoch mknął po wygraną. Casey Stoner z kolei tracił dystans do Pedrosy, a dodatkowo naciskał go Lorenzo - Hiszpan jednak przesadził na jednym z zakrętów - przednie koło z mocno już zużytą oponą uległo uślizgowi i Jorge wylądował na asfalcie a potem na poboczu. Co prawda ruszył jeszcze do walki, ale uszkodzenia motocykla były zbyt poważne i wściekły Hiszpan wrócił do swoich mechaników. Do końca wyścigu brakowało już tylko 4 okrążeń.
Najjaśniej błyszczeli dwaj zawodnicy z zespołów satelickich. Randy de Puniet pojechał świetny wyścig w barwach LCR Honda i osiągnął 4. miejsce. Francuz w zasadzie nie musiał stoczyć żadnej walki w czasie wyścigu poza krótką jazdą w pobliżu Andrei Dovizioso, który w końcu jednak wyjechał na moment poza tor.
Świetnie pojechał Marco Melandri - Włoch pokazał dobre osiągi motocykla Kawasaki, choć przed sezonem było prawie pewne, że motocykli tej marki nie zobaczymy na starcie w tym roku. Toczył ciężkie boje z Lorisem Capirossim i Colinem Edwardsem. Andrea Dovizioso po spadku na 16, miejsce zaczął przebijać się do góry i ukończył wyścig tuż za wspomnianą trójką.
Dziesiątkę uzupełnili Toni Elias i Chris Vermeulen. Obaj liczyli na więcej, zwłaszcza zawodnik Suzuki. Yuki Takahashi był najlepszym debiutantem (Mika Kallio nie ukończył wskutek awarii hamulców). Sete Gibernau ukończył wyścig na 11. miejscu. Poza Stonerem to najwyższe miejsce motocyklisty na Ducati. Poobijany Nicky Hayden był 15.
W geście zwycięstwa po zakończeniu wyścigu Valentino Rossi ponownie wykonał przed kibicami swoje legendarne już "show" sprzed 10 lat - na moment wybiegając poza tor, odwiedzając stojącą nieopodal... toaletę.
Wyniki wyścigu o GP Hiszpanii:
1. Valentino Rossi (Yamaha) 45m18.557s
2. Dani Pedrosa (Honda) + 2.700s
3. Casey Stoner (Ducati) + 10.507s
4. Randy de Puniet (LCR Honda) + 31.893s
5. Marco Melandri (Hayate Kawasaki) + 33.128s
6. Colin Edwards (Tech 3 Yamaha) + 34.128s
7. Loris Capirossi (Suzuki) + 34.421s
8. Andrea Dovizioso (Honda) + 34.625s
9. Toni Elias (Gresini Honda) + 42.689s
10. Chris Vermeulen (Suzuki) + 45.183s
11. Sete Gibernau (Hernando Ducati) + 48.192s
12. Yuki Takahashi (Scot Honda) + 51.875s
13. James Toseland (Tech 3 Yamaha) + 53.683s
14. Alex de Angelis (Gresini Honda) + 53.941s
15. Nicky Hayden (Ducati) +1m01.237s
16. Niccolo Canepa (Pramac Ducati) +1m10.896s
Nie ukończyli:
Jorge Lorenzo (Yamaha) 23 okr.
Mika Kallio (Pramac Ducati) 12 okr.