Croatia claimed an impressive win over pre-tournament favourites Germany to reach the Euro 2008 quarter-finals.
Darijo Srna broke the deadlock on 24 minutes when he beat Marcell Jansen to Danijel Pranjic's cross and fired home.
Croatia were gifted a second goal on 63 minutes when Ivan Rakitic's cross came off Lukas Podolski and rebounded off the post for Ivica Olic to tap in.
Podolski pulled a goal back with a late drive but Bastian Schweinsteiger's red card ended German hopes in injury time.
It was a famous victory for Croatia, and an echo of their 3-0 success over the same opposition in the 1998 World Cup quarter-finals, but it casts serious doubts over Germany's credentials for the European crown.
Joachim Low's side put in an uncharacteristically fractured performance, creating plenty of chances but letting themselves down with their own poor defending.
And, although the Germans - who face co-host Austria in their final group match - will still be fancied to qualify for the quarter-finals as group runners-up and, if so, they will face Portugal in the last eight.
As impressive as Low's men were in despatching Poland in their opening game, it soon became apparent they would not find things as easy against Croatia, who proved they are genuine title contenders.
In a cagey opening, play was largely confined to a crowded and competitive midfield and there was little to choose between either side.
But Srna broke the deadlock when Pranjic sent over a superb deep cross and, with Jansen hesitant, the Shakhtar Donetsk winger pounced to prod the ball past Jens Lehmann.
Germany responded well and Jansen almost made immediate amends for his error when he sent over an enticing cross that Mario Gomez headed wastefully over.
But Low's side were still looking fragile at the back and Croatia soon fashioned another chance when Rakitic chipped the ball into the box and Olic headed it back for Niko Kranjcar to fire over at full stretch.
Chances continued to come and go for Germany with Michael Ballack seeing his fierce free-kick pushed away by Croatia goalkeeper Stipe Pletikosa before Christoph Metzelder headed Torsten Frings' corner inches over.
Croatia, however, were still threatening themselves and could easily have extended their lead before the break when the woeful Jansen allowed Vedran Corluka to escape down the right.
Germany's Bastian Schweinsteiger was sent of for this shove on Jerko Leko
Corluka's cross found its way to Olic and he teed up Kranjcar, who was unfortunate that his drive was straight at Lehmann.
Loew reshuffled his side at the break, putting Jansen out of his misery and introducing more outright pace in David Odonkor.
His opposite number Slaven Bilic seemed happy with a single-goal lead and Croatia sat back and invited Germany to attack them.
Initially it seemed a dangerous ploy and Ballack should have equalised when Pletikosa punched Philipp Lahm's cross straight to his feet, instead blazing over.
But the Croatian defence stood firm and their resilience was rewarded when they were gifted a second goal.
There seemed little danger when Rakitic crossed from the right but the ball deflected off Podolski and hit the post, rebounding straight to Olic who slotted into an unguarded net with Lehmann stranded.
Germany kept coming forward and eventually found a reply, Podolski drilling home after Robert Kovac failed to clear Philipp Lahm's cross.
An equaliser never looked like materialising, however, and Germany's misery was completed when Schweinsteiger was sent off in injury time for a shove in retaliation to a Jerko Leko tackle.
Croatia: Pletikosa, Corluka, Robert Kovac, Simunic, Pranjic, Srna (Leko 80), Modric, Nico Kovac, Rakitic, Kranjcar (Knezevic 85), Olic (Petric 72).
Subs Not Used: Galinovic, Runje, Simic, Vejic, Vukojevic, Kalinic, Pokrivac, Klasnic, Budan.
Booked: Srna, Simunic, Modric, Leko.
Goals: Srna 24, Olic 62.
Germany: Lehmann, Lahm, Metzelder, Mertesacker, Jansen (Odonkor 46), Fritz (Kuranyi 82), Frings, Ballack, Podolski, Gomez (Schweinsteiger 65), Klose.
Subs Not Used: Enke, Adler, Friedrich, Westermann, Rolfes, Neuville, Trochowski, Hitzlsperger, Borowski.
Sent Off: Schweinsteiger (90).
Booked: Ballack, Lehmann.
Goals: Podolski 78.
Ref: Frank De Bleeckere (Belgium).