Croatia 2 Germany 1
Dark horses Croatia sent out a message of intent to the other Euro 2008 finalists tonight as they stunned highly-fancied Germany to take a huge stride towards a quarter-final spot.
Darijo Srna and Ivica Olic struck their side's goals as Croatia, who had only ever beaten Germany once before, produced arguably the first major upset of Euro 2008 in an entertaining encounter in Klagenfurt.
Lukas Podolski pulled a goal back late on for Germany with his third strike in two games to set up a nail-biting finale, but there was to be no way back for Joachim Low's team, who finished with 10 men following the 90th-minute dismissal of substitute Bastian Schweinsteiger.
Both sides came into the game having won their opening matches, although Germany had looked far more impressive in seeing off Poland than Croatia had in defeating Austria.
However, it was Slaven Bilic's side who turned on the style at the Worthersee Stadion as they took control of Group B with two wins out of two.
A frantic start to the match promised much but for all their huffing and puffing, neither side were able to create anything resembling a chance in the opening 20 minutes as defences held firm.
The ball did find its way into the back of the net in the 22nd minute when Germany striker Mario Gomez slotted home past Stipe Pletikosa but the offside flag had already gone up against the Stuttgart man.
The deadlock was broken for real just two minutes after that incident though, when Croatia went ahead through Srna.
Danijel Pranjic sent over a superb cross from the left and Srna nipped in front of marker Marcell Jansen to slide the ball in at the far post, Germany goalkeeper Jens Lehmann given no chance to save.
Croatia had a gilt-edged chance to make it 2-0 in the 30th minute, but Niko Kranjcar wasted it.
Ivan Rakitic chipped a pass into the area which was flicked back towards the penalty spot by Olic, but the in-rushing Kranjcar was unable to cap a well-worked move as he blazed over.
Germany knew they needed to step up through the gears and they finally made Pletikosa earn his keep with two efforts in rapid succession.
The first saw Pletikosa push away a thunderous Michael Ballack free-kick, before the Spartak Moscow custodian awkwardly deflected away a Christoph Metzelder effort with his knee.
Metzelder then headed a Torsten Frings corner just over from seven yards out as the Germans stepped up their efforts for an equaliser before the break.
However, Low's side very nearly found themselves two goals behind in the 43rd minute, and they needed a fine reaction stop from Lehmann to deny Kranjcar, who chested down Olic's pass and smashed in a first-time volley.
Having seen his side let off the hook, Low opted for a more adventurous approach in the second half as he sacrificed full-back Jansen for jet-heeled winger David Odonkor during the interval.
Aside from a Ballack shot over the crossbar though, Croatia looked fairly comfortable at the start of the period and also had a decent effort of their own with Luka Modric firing in a shot that Lehmann gathered, although not before seeing it squirm through his hands first.
Lehmann's next task was to pick the ball out of the back of his net as Croatia stunned the Germans with a second goal in the 62nd minute.
A Rakitic cross from the right took a deflection off Podolski before arrowing goalwards and although Lehmann, who had begun to come out for the initial cross, managed to dive backwards and get a hand on it, the ball struck his near post before rebounding back out to Olic, who had the easy task of slotting home.
Germany looked for an immediate response but aside from a Schweinsteiger shot that fizzed across the face of goal, they were still finding it difficult to create chances against a well-organised Croatia backline.
Low's side earned themselves a lifeline with 12 minutes to go though when Podolski lashed home a shot on the half-volley after the ball had fallen kindly to him in the box.
Germany could not build on that goal, though, and their final hopes of getting anything out of the match all but disappeared when Schweinsteiger was given a straight red card for shoving Jerko Leko.