Nederland begon het toernooi tegen aartsrivaal Duitsland. Oranje kwam op achterstand na een doelpunt van de Duitse middenvelder Torsten Frings, maar dankzij een goal van Ruud van Nistelrooij 10 minuten voor tijd pakte Nederland alsnog een punt.
In het tweede duel tegen Tsjechië stond Oranje, dankzij doelpunten van Wilfred Bouma en Van Nistelrooij, al binnen twintig minuten op een 2 - 0 voorsprong. Een paar minuten later verkleinde Jan Koller de voorsprong. Na de bekende wissel door trainer Dick Advocaat die in de 59e minuut de goed spelende maar licht geblesseerde Arjen Robben verving door Paul Bosvelt zakte Nederland weg en wisten de Tsjechen de wedstrijd met 3-2 alsnog te winnen.[1] Nederland had plaatsing voor de kwartfinale niet meer in eigen hand en het stond op de rand van uitschakeling.
Duitsland speelde de tweede wedstrijd verrassend gelijk tegen Letland. Hierdoor was Tsjechië al na twee wedstrijden geplaatst voor de kwartfinale en moest Duitsland in de slotwedstrijd van diezelfde Tsjechen winnen om ook door te gaan. Dit leek te gaan gebeuren toen Michael Ballack in de 21e minuut de score voor Duitsland opende. De Tsjechen toonden veerkracht en wisten alsnog de wedstrijd te winnen. Hierdoor had Nederland, dat de wedstrijd tegelijkertijd afwerkte, nog een kans om door te gaan als ze in Braga van Letland zouden winnen. Dit gebeurde, zodat Oranje met de hakken over de sloot naar de kwartfinale ging.
Kwartfinale
Nederland - Zweden was een gelijkopgaande wedstrijd met een aantal kansen voor beide ploegen waarna strafschoppen de beslissing moest brengen. Edwin van der Sar wist de zesde strafschop van de Zweedse aanvoerder Olof Mellberg te stoppen. Eerder misten Zlatan Ibrahimović (over) en Phillip Cocu (paal).
Halve finale
Nederland verloor in de halve finale van Portugal. Na de nederlaag nam Dick Advocaat ontslag als bondscoach.