All the action from the Group D match in Porto.
Goalflashes and major incidents:
FULL-TIME: Referee Mike Riley blows for full-time and the draw leaves Germany struggling to qualify for the quarter-finals.
90 mins +1: Klose wastes the best chance of the match with a diabolical header when unmarked and six yards out, missing by several yards.
89 mins: Latvia get a half-chance to claim a dramatic win when Blagonadezdins' cross finds Verpakovskis but the striker can only head straight at Kahn.
84 mins: Brdaric almost gets on the end of a Ballack header but Latvia 'keeper Kolinko collects.
83 mins: Verpakovskis is brought down for the third time in the area with what looks to be a good claim for a penalty, but yet again referee Riley is unmoved.
79 mins: Latvian skipper Astafjevs is booked for diving in with both feet on Hamann.
78 mins: Germany bring on striker Brdaric for Kuranyi.
75 mins: The match has reached something of a stalemate with the two midfields cancelling each other out, and neither team can get behind the other's defence.
70 mins: Lobanovs is replaced by Laizans for Latvia.
68 mins: Germany go close as Bobic fails to connect with a cross, and he is immediately substituted for Klose, while Southampton striker Pahars comes on for Prohorenkovs.
65 mins: Kolinko parries a fierce Ballack free-kick as Latvia continue to match Germany all over the pitch.
62 mins: Verpakovskis goes down in the box but referee Riley again refuses to give a penalty.
59 mins: Kuranyi and Schweinsteiger both fail to connect with a dangerous ball across the face of the goal, before Ballack crashes a shot against Latvian defender Lobanovs.
55 mins: Frings is the third German to be booked for a cyncial foul in midfield, and moments later Verpakovskis appears to be hauled over in the box but referee Riley controversially denies the penalty claims.
52 mins: A German corner bounces on the edge of the six-yard box but Baumann can only hook the ball wide from a difficult angle.
48 mins: Kuranyi beats two Latvian defenders to reach the byeline but fails to find a team-mate with his cross.
46 mins: Germany bring on 19-year-old Bayern Munich midfielder Schweinsteiger on the left for Schneider as the second half begins.
HALF-TIME: German coach Rudi Voeller has some work to do after his side failed to impress in the first half, and it was Latvia who finished the stronger.
42 mins: Hamann is the latest player to be booked, this time for hacking down Rubins.
39 mins: Verpakovskis gets the crowd on their feet with the best moment of the match so far - a fantastic turn in the centre circle and an electrifying run into the area leaving the German defence stranded before Kahn produces a superb one-on-one save.
35 mins: Verpakovskis is almost gifted a goal when Woerns fails to clear from the six-yard box, but the German defender manages to hack the ball away just in time.
33 mins: Kuranyi finally tests Kolinko with a shot from outside the area but the Latvian 'keeper turns it around the post.
31 mins: Germany are starting to dominate now, with Kuranyi wasting a good chance by failing to control the ball as he turns inside the area.
28 mins: Latvian 'keeper Kolinko does nothing to enhance his already dubious reputation by going on a lengthy run out of his area and thumping the ball straight into the advertising hoardings.
26 mins: Ballack is desperately close to giving Germany the lead as he fails to make a strong contact with a header, and seconds later Kuranyi glances a header just wide.
22 mins: Verpakovskis has a strong claim for a penalty as Ballack appears to haul him down in the box but referee Riley waves play on.
21 mins: Referee Riley shows Friedrich a yellow card after the German right-back impedes Lobanovs.
18 mins: Latvia enjoy their first significant spell of possession and unnerve the German defence with a couple of dangerous crosses, without managing to produce a finish.
14 mins: Kuranyi has Germany's first serious effort, chesting the ball down outside the box before firing just past Kolinko's left-hand post.
12 mins: Germany may have started with a more attacking line-up but so far they have failed to trouble the Latvian defence.
8 mins: Latvia get the first half-chance with a free-kick outside the box but the shot barely makes it as far as the wall. Frings then fires well over at the other end.
6 mins: In a scrappy start to the match referee Riley has been the busiest man on the pitch, whistling for a succession of fouls.
1 min: With less than 30 seconds played Isakovs brings down Lahm and English referee Mike Riley shows a yellow card.
1700 BST: Latvia kick off the first of the day's Group D matches at Porto's Estadio do Bessa.
Germany coach Rudi Voeller rests defender Jens Nowotny, who has a knee injury, and brings in Frank Baumann as a replacement. Fredi Bobic comes in alongside Kevin Kuranyi in attack.
Latvia coach Aleksandrs Starkovs uses the same starting line-up that faced the Czech Republic.
Latvia: Kolinko, Isakovs, Stepanovs, Zemlinskis, Blagonadezdins, Bleidelis, Lobanovs, Astafjevs, Rubins, Prohorenkovs, Verpakovskis.
Germany: Kahn, Friedrich, Woerns, Baumann, Lahm, Hamann, Schneider, Ballack, Frings, Kuranyi, Bobic.
Referee: Mike Riley (England)