Croatia assumed command of Euro 2008 Group B with a well-earned 2-1 victory over group favourites Germany at the Wothersee Stadium in Klagenfurt.
They took a 23rd-minute lead through Dario Srna, before Portsmouth midfielder Niko Kranjcar spurned two good chances to extend their advantage.
Ivica Olic netted just after the hour mark when Srna’s deflected cross hit the post and rebounded into his path, before Lukas Podolski scored with 10 minutes remaining to set up a tense finish.
The tension was too much for second-half Germany substitute Bastian Schweinsteiger, who was sent off in injury time for a push on Jerko Leko.
The result puts Croatia three points clear of Germany at the top of Group B with one match remaining.
Germany coach Joachim Low kept faith with the XI that started the 2-0 opening victory over Poland, while his opposite number Slaven Bilic made one change to the Croatia side that beat Austria 1-0, with 20-year-old Schalke midfielder Ivan Rakitic coming in for Mladen Petric.
Croatia had looked far from their best against the co-hosts, but they began the game with an attacking vigour suggestive of a desire to rediscover the fine football that characterised their qualifying campaign.
Christoph Metzelder had to produce a well-timed tackle to deny Olic on the edge of the German box on 20 minutes, but shortly afterwards Croatia took a deserved lead when Srna nipped in ahead of the flat-footed Marcell Jansen to touch home Daniel Pranjic’s inviting cross from the left.
Germany could have equalised almost immediately, when Mario Gomez nodded Jansen’s cross over the bar from eight yards, before Kranjcar missed a gilt-edged opportunity to extend Croatia’s lead, blazing over from 12 yards after being set up by Olic’s knockdown.
Low’s men came back into the game as the first half wore on, with Michael Ballack stinging Croatia goalkeeper Stipe Pletikosa‘s fingers with a fierce free-kick and Metzelder putting a header over the crossbar from a left-wing corner, before Kranjcar spurned another good chance.
Vedran Corluka‘s low cross from the right was flicked back into the centre from the left side of the area by Olic, but after deftly controlling the ball on his chest Kranjcar put his volley straight at Jens Lehmann in the German goal.
Germany began to dominate possession in the early stages of the second period, but without creating any real chances, and shortly after the hour mark they were dealt a hammer blow when Croatia notched a fortuitous second goal.
Srna’s cross from the right took a big deflection off Podolski which caught Lehmann out of position, and when the ball bounced back off the right-hand post Olic was on hand to gleefully touch it home.
Schweinsteiger drew a save from Pletikosa with a low shot from the left as his side pushed forward in search of a route back into the game, and with 79 minutes on the clock Podolski gave them a glimmer of hope when he lashed a left-footed volley into the bottom-left corner from 15 yards.
But it was too little, too late. Schweinsteiger’s moment of madness capped a disappointing day for the Germans, and Croatia will go into their final fixture against Poland knowing a draw will secure top spot in the group.