Holland 0 Denmark 1
HOLLAND: Stekelenburg, Van Der Wiel (Kuyt 84), Heitinga, Vlaar, Willems, Van Bommel, Nigel De Jong (Van der Vaart 71), Robben, Sneijder, Afellay (Huntelaar 71), van Persie.
DENMARK: Andersen, Jacobsen, Kjaer, Agger, Simon Poulsen, Kvist Jorgensen, Zimling, Rommedahl (Mikkelsen 83), Eriksen (Schone 74), Krohn-Delhi, Bendtner.
Goal: Krohn-Delhi 24.
Michael Krohn-Dehli scored the only goal of the game as Denmark shocked highly-fancied Holland in the opening match of Euro 2012 Group B in Kharkiv.
Bert van Marwijk's side created 28 chances at Metalist Stadium, hitting the post through Arjen Robben and having two penalty appeals turned down.
But only Krohn-Dehli was able to find the target and he did so in style, lashing a fierce angled drive through the legs of Maarten Stekelenburg in the 24th minute.
The result put the cat among the pigeons in the 'Group of Death', which also contains Germany and Portugal.
Jetro Willems became the youngest player at a European Championship, winning his third cap at the age of 18 years and 71 days, but showed no signs of being overawed by the occasion.
The PSV Eindhoven left-back blasted a long-range drive over Stephan Andersen's bar in the third minute as the Oranje signalled their attacking intent early on.
Robben's seventh-minute cross deflected kindly into the path of Robin van Persie - preferred up front to qualifying top scorer Klaas Jan Huntelaar - but the Arsenal captain sidefooted wide when he should have done better.
Barcelona midfielder Ibrahim Afellay sneaked down the left side of the area two minutes later and lashed an angled shot over the bar.
Robben was next to try his luck and managed to test Andersen, the Evian stopper getting down well to keep out the Bayern Munich forward's skidding left-footed attempt.
The Dutch looked totally in control, but were stunned in the 24th minute when Denmark took the lead against the run of play.
Simon Poulsen burst down the left and, after the Danes got lucky with his cross ricocheting straight to Krohn-Dehli, the Brondby winger despatched an angled left-footed drive through Stekelenburg's legs.
Holland looked rattled, but soon re-established their rhythm and pushed forward in search of the equaliser.
Ron Vlaar, playing at centre-back in place of the injured Joris Mathijsen, rose well to meet a Robben corner but could only direct his header wide, while Poulsen was fortunate not to concede a spot-kick when the ball hit his hand in the area.
Robben then latched on to a poor attempted pass from Andersen in the 36th minute and advanced to the edge of area before sending a left-footed shot against the post.
As half-time approached, though, Denmark's confidence grew and a well-worked move three minutes before the break almost put them two up, Stekelenburg diving to his left to save Krohn-Dehli's low effort.
Back at the other end, Van Persie should have levelled before the interval from Wesley Sneijder's pass but a poor first touch took him wide and allowed Andersen to narrow the angle and make the save.
The Dutch continued in the same vein after the interval, but struggled to break down a well-organised Denmark defence.
Van Persie fell over his own feet when well placed and then had a right-footed shot on the slide kept out by Andersen.
Holland captain Mark van Bommel unleashed a vicious drive which brought another fine save out of Andersen, and John Heitinga powered a free header over the bar from Robben's corner.
The second half was following a similar pattern to the first, with Holland enjoying the lion's share of possession and chances, but Denmark remained dangerous on the break.
Poulsen's trickery down the left side of the box ended with a dangerous cross but nobody was on hand to convert, with Krohn-Deli fizzing in a low shot soon after which Stekelenburg did well to save.
In between those Denmark opportunities, Robben sent a free header wide from Afellay's cross, but the breakthrough was not forthcoming - prompting Van Marwijk to make a double substitution with 20 minutes left.
The Oranje boss introduced Huntelaar and Rafael van der Vaart for Afellay and Nigel de Jong, and the changes almost reaped instant rewards.
Schalke striker Huntelaar latched on to a stunning outside-of-the-boot pass from the influential Sneijder only to be denied by Andersen, with Van Persie's frustrating evening continuing when he fouled the keeper in attempting to pounce on the follow-up.
The Holland players were enraged in the 89th minute when referee Damir Skomina waved away penalty appeals after the ball struck Lars Jacobsen's hand and averted the danger from Huntelaar.
Van Persie flicked a header over the bar from Sneijder's cross two minutes into stoppage time, but it was not to be for Holland as Denmark held on for a famous win.
EURO 2012
GROUP STAGES
Friday June 8
Poland 1 Greece 1
POLAND: Szczesny, Piszczek, Wasilewski, Perquis, Boenisch, Murawski, Polanski, Blaszczykowski, Obraniak, Rybus (Tyton 69), Lewandowski.
Goal: Lewandowski 17.
GREECE: Chalkias, Torosidis, Papastathopoulos, Avraam Papadopoulos (Kyriakos Papadopoulos 36), Holebas, Maniatis, Katsouranis, Karagounis, Ninis (Salpingidis 46), Gekas (Fortounis 68), Samaras.
Goal: Salpingidis 51.
Russia 4 Czech Republic 1
RUSSIA: Malafeev, Aniukov, Berezutsky, Ignashevich, Zhirkov, Shirokov, Denisov, Zyryanov, Dzagoev (Kokorin 84), Kerzhakov (Pavlyuchenko 73), Arshavin.
Goals: Dzagoev 15, Shirokov 24, Dzagoev 79, Pavlyuchenko 82.
CZECH REP: Cech, Gebre Selassie, Hubnik, Sivok, Kadlec, Plasil, Jiracek (Petrzela 75), Pilar, Rosicky, Rezek (Hubschman 46), Baros (Lafata 85).
Goal: Pilar 52.
Saturday June 9
Holland 0 Denmark 1
HOLLAND: Stekelenburg, Van Der Wiel (Kuyt 84), Heitinga, Vlaar, Willems, Van Bommel, Nigel De Jong (Van der Vaart 71), Robben, Sneijder, Afellay (Huntelaar 71), van Persie.
DENMARK: Andersen, Jacobsen, Kjaer, Agger, Simon Poulsen, Kvist Jorgensen, Zimling, Rommedahl (Mikkelsen 83), Eriksen (Schone 74), Krohn-Delhi, Bendtner.
Goal: Krohn-Delhi 24.
Germany 1 Portugal 0
GERMANY: Neuer, Boateng, Hummels, Badstuber, Lahm, Khedira, Schweinsteiger, Muller (Bender 90), Ozil (Kroos 87), Podolski, Gomez (Klose 80).
Goal: Gomez 72.
PORUGAL: Rui Patricio, Joao Pereira, Bruno Alves, Pepe, Fabio Coentrao, Meireles (Varela 80), Veloso, Joao Moutinho, Nani, Postiga (Nelson Oliveira 70), Ronaldo.
Sunday June 10
Gdansk, Group C: Spain v Italy (1700)
Poznan, Group C: Republic of Ireland v Croatia (1945)
Monday June 11
Donetsk, Group D: France v England (1700)
Kiev, Group D: Ukraine v Sweden (1945)
Tuesday June 12
Wroclaw, Group A: Greece v Czech Republic (1700)
Warsaw, Group A: Poland v Russia (1945)
Wednesday June 13
Lviv, Group B: Denmark v Portugal (1700)
Kharkiv, Group B: Holland v Germany (1945)
Thursday June 14
Poznan, Group C: Italy v Croatia (1700)
Gdansk, Group C: Spain v Republic of Ireland (1945)
Friday June 15
Donetsk, Group D: Ukraine v France (1700)
Kiev, Group D: Sweden v England (1945)
Saturday June 16
Wroclaw, Group A: Czech Republic v Poland (1945)
Warsaw, Group A: Greece v Russia (1945)
Sunday June 17
Kharkiv, Group B: Portugal v Holland (1945)
Lviv, Group B: Denmark v Germany (1945)
Monday June 18
Gdansk, Group C: Croatia v Spain (1945)
Poznan, Group C: Italy v Republic of Ireland (1945)
Tuesday June 19
Donetsk, Group D: England v Ukraine (1945)
Kiev, Group D: Sweden v France (1945)
QUARTER-FINALS
Thursday June 21
Warsaw, QF1: Winner A v Runner-up B (1945)
Friday June 22
Gdansk, QF2: Winner B v Runner-up A (1945)
Saturday June 23
Donetsk, QF3: Winner C v Runner-up D (1945)
Sunday June 24
Kiev, QF4: Winner D v Runner-up C (1945)
SEMI-FINALS
Wednesday June 27
Donetsk, SF1: Winner QF1 v Winner QF3 (1945)
Thursday June 28
Warsaw, SF2: Winner QF2 v Winner QF4 (1945)
FINAL
Sunday July 1
Kiev: Winner SF1 v Winner SF2 (1945)