18 fokos levegő és mindössze csak 20 fokos aszfalthőmérséklet fogadta a versenyzőket a Magyar Nagydíjon, ahol koránt sem ideális körülmények között vette kezdetét a verseny. A pálya a délelőtti esőzések miatt nyirkos volt, és sűrű gomolyfelhők sorakoztak a Hungaroring felett.
A nagy kérdés természetesen az volt, hogy a 11., illetve a 15. helyről rajtoló Michael Schumacher és Fernando Alonso miként fog tudni felzárkózni az élmezőnyre az amúgy is szinte előzésre alkalmatlan Ringen. A versenyzők többsége intermediate abroncsokkal kezdte meg a versenyt, míg a Red Bull Racing osztrák versenyzője, Christian Klien a boxutcából kezdte meg a futamot.
A pole pozícióból rajtoló Kimi Raikkönen fantasztikusan kapta el a rajtot, míg a mellőle induló Felipe Massa a pálya piszkos oldaláról igencsak beragadt, így az esőgumikkal induló Rubens Barrichello az első kanyart már a második helyen vehette be.
A világbajnokság két esélyese, Michael Schumacher és Fernando Alonso hihetetlen tempót diktált a rajtnál és az első körben, a Ferrari hétszeres világbajnoka a 11. helyről felugrott a negyedikre, míg Alonso először a hatodikra, majd megelőzve márkatársát, Giancarlo Fisichellát, feljött riválisa mögé az ötödikre.
Időközben Kubica megpördült, ám a lengyel versenyző folytatni tudta a körözést. A Williams ausztrál versenyzője, Mark Webber a negyedik körben vélhetően egy műszaki probléma miatt feladni kényszerült a küzdelmet.
A negyedik helyért hatalmas csata alakult ki a két világbajnok között. Alonso keményen nyomta Schumachert, aki szemmel láthatóan küszködött a Ferrari vezethetőségével, így a spanyol pilóta egy hihetetlen okos manőverrel körbeautózta a hétszeres világbajnokot, és megkezdte a felzárkózást a harmadik helyen autózó de la Rosa mögé.
Az ötödik körben Barrichello behajtott a boxba, hogy intermediate abroncsokra váltson, a Honda brazilja ezzel visszaesett a tizedik helyre. A Ferrari versenyzői komoly gondban voltak, ugyanis a Bridgestone abroncsok egyszerűen nem tapadtak a vizes pályán, melynek következtében Fisichella teljesen megérkezett Schumacher mögé, akinél szemmel láthatóan gyorsabb volt. Massa közben megcsúszott, így visszaesett Coulthard mögé a nyolcadik helyre.
A tizedik körnél járva a McLaren duója, Kimi Raikkönen és Pedro de la Rosa állt az élen, miközben a bajnokság éllovasa, Fernando Alonso teljesen megérkezett honfitársa mögé, akivel megkezdte a harcot a második helyért. A negyedik pozícióban a Honda brit versenyzője, Jenson Button autózott, akit jócskán lemaradva Michael Schumacher követett az ötödik helyen, miközben Fisichella folyamatosan támadta. A pontszerzők sorát David Coulthard, és Nick Heidfeld zárta, míg a kilencedik a második helyről rajtoló Felipe Massa volt. Időközben ismét rázendített az eső.
A Ferrari brazil versenyzője ki is állt a boxba, és a 12. körben esőgumikra váltott. Négy körrel később de la Rosa is kiállt a boxba friss gumikért és üzemanyagért. A spanyol intermediate abroncsokat kapott, ugyanis Massa nem tudott javulni az esőgumikkal. Közben Fisichella és Schumacher a célegyenesre ráfordítóban ismét összeért, majd az olasz az első kanyarban megelőzte a hétszeres világbajnokot, aki nem hagyta annyiban a dolgot, és a belső íven megpróbálta visszaelőzni riválisát, ám nekicsúszott a Renault-nak, amit a Ferrari első vezetőszárnya bánt.
Schumachernek így egy előre be nem tervezett kiállást kellett eszközölnie, hogy új orrkúpot kapjon. A Ferrari világbajnoka szintén intermeadiate gumikat tetetett fel, miközben üzemanyagot is vételezett. A hétszeres világbajnok a nyolcadik helyen folytatta tovább a körözést, miközben Kubica összetörte autóját, így a lengyelnek is orrkúpot kellett cserélnie.
A Williams istálló a verseny 21. körében elkezdhetett pakolni, ugyanis Nico Rosberg nekicsapta autóját a palánknak. Alonso a 24. körben kört adott legnagyobb riválisának, Michael Schumachernek, bár a spanyol ekkor még nem volt kint a boxban.
Kimi Raikkönen a 26. körben a Toro Rosso versenyzője, Vitantonio Liuzzi mellett próbált meg elmenni. Az olasz pilóta megpróbálta elengedni a McLarent, amire a finn sofőr nem számított, így már nem tudta elkerülni az ütközést. Az MP4/21-es bal oldala teljesen leamortizálódott, így a jégember 100. versenye idő előtt véget ért a Hungaroringen.
A biztonsági autót azonnal beküldték a pályára. Az élmenők kapva kaptak az alkalmon, és azonnal kiálltak a boxba tankolni. Schumacher nem élt ezzel a lehetőségével, így visszavette körét Alonsótól, aki rengeteget vesztett a biztonsági autó beküldésével.
A safety car a 30. körben engedte el a mezőnyt, miközben a pálya egyre jobban száradt. Schumacher az új rajtot követően a kettes kanyarban megpördült, de tovább tudta folytatni a körözést. Alonso egyébként remekül elment a célegyenesben, így megkezdte az elszakadást a többiektől.
A verseny felénél járva a következőképp nézett ki a pontszerzők sora: az élen továbbra is Fernando Alonso tanyázott, miközben Button egyre jobban kezdett felzárkózni a Renault versenyzője mögé. A harmadik helyen Pedro de la Rosa tanyázott, akit 8 másodperccel lemaradva Barrichello követett a negyedik helyen. A pontszerzők sorát Nick Heidfeld, David Colulthard, és az időközben - a száradó pálya miatt - egyre nagyobb tempót diktáló Michael Schumacher, illetve az első versenyét teljesítő Robert Kubica zárt.
Schumacher időközben megelőzte Coulthardot, és rohamtempóban érkezett meg az ötödik helyen autózó Nick Heidfeld mögé, aki mellett egy körrel később a célegyenes végi kanyarban sikeresen elment. Közben, 26 körrel a futam vége előtt Jenson Button teljesen megérkezett Fernando Alonso mögé, aki szemmel láthatóan küszködött az intermediate abroncsokkal az egyre száradó pályán.
Button és Schumacher a 46. körben teljesítette utolsó kiállását. A Honda versenyzője visszatért a második helyre, míg a hétszeres világbajnok Heidfeld mögé a 6. pozícióba folytatta tovább a körözést.
Húsz körrel a futam vége előtt a csapatok mégis úgy döntöttek, hogy elég száraz már a pálya ahhoz, hogy megpróbálkozzanak a száraz gumikkal. Elsőként a Toyota versenyzője, Jarno Trulli, majd a Honda brazilja, Rubens Barrichello tetetett fel száraz aszfaltra alkalmatos abroncsokat. Egy körrel később az élről Alonso is kiállt, aki szintén lecserélte gumijait.
A Renault világbajnoka azonban csak két kanyarig jutott. A Renault szerelők rosszul rögzítették a jobb hátsó kereket, és ugyanaz történt, mint 1987-ben Nigel Mansellel, a kerékanya lerepült, így a spanyol pilóta versenyének befellegzett. A Renault irányíthatatlanul a gumifalba csapódott, így a franciák a tavalyi évhez hasonlóan pont nélkül távozhattak a Magyar Nagydíjról.
Időközben Button átvette a vezetést, akit Nick Heidfeld és Michael Schumacher követett, ám mindketten intermediate abroncsokkal futottak. A többiek a száraz gumikkal három másodperccel voltak gyorsabb náluk. Heidfeld egy körrel később ki is állt a boxba, ám Schumacher továbbra is a pályán maradt. A Ferrari kockáztatott, ugyanis ha ekkor kihívták volna Schumachert, a hétszeres világbajnok visszaesik a hatodik helyre, ám ha marad, úgy gondolták, hogy behozhatja autóját de la Rosa mögé a harmadik helyre. Az olaszok Massát azonban kiintették, és a brazil száraz aszfaltra alkalmatos gumikat kapott.
Nyolc körrel a futam vége előtt de la Rosa teljesen megérkezett Schumacher mögé. A spanyol pilóta a célegyenesben többször is megpróbálta megelőzni a Ferrari versenyzőjét, azonban Michael minden egyes alkalommal visszaverte a McLaren támadásait. Eközben Button egyre nagyobb előnyre tett szert, így gőzerővel haladt első futamgyőzelme felé.
Miközben Schumacher és de la Rosa keményen csatázott egymással, Nick Heidfeld egyre jobban megérkezett mögéjük. Öt körrel a futam vége előtt a McLaren versenyzője a pálya középső szakaszán végül megelőzte Schumachert, így átvette a tőle a második helyet.
Három körrel a futam vége előtt megtörtént, amire számítani lehetett. Schumacher Ferrarija nem bírta a strapát. A Ferrari nagyot hibázott, hiszen a csapatnak már korábban ki kellett volna intenie a világbajnokot, hogy száraz gumikat kapjon, ám ők kockáztattak, aminek meg is lett a vége.
Jenson Button megszerezte pályafutása és a Honda első győzelmét a Forma-1-ben. A második helyen a McLaren versenyzővé avanzsált tesztpilótája, Pedro de la Rosa végzett, míg a harmadik a BMW Sauber német sofőrje, Nick Heidfeld lett. A pontszerzők sorát a Honda brazilja, Rubens Barrichello, a Red Bull veterán pilótája, David Coulthard, Ralf Schumacher, az újonc Robert Kubica, és az első sorból induló Felipe Massa zárta.
A világbajnokság két esélyese egyetlen egy pontot sem szerzett, így továbbra is maradt a 11 pontos különbség kettejük között az összetettben. A Ferrari ugyan egy ponttal közelebb került a Renault-hoz a konstruktőrök versenyében, a háromhetes nyári szünet előtt egyáltalán nem lehet elégedett.