All the action from the Group D match in Braga.
Goalflashes and major incidents:
FULL TIME The final whistle blows. Latvia are definitely out - but Holland must now wait until full time in Lisbon.
Within seconds, news comes through that Germany have lost - and delirium breaks out in the Dutch ranks.
90 mins + 1: Overmars stings Kolinko's fingers with a rising drive.
87 mins: With time ticking away, the nervy Dutch fans are starting to become more relaxed and their celebratory chants fill the Braga stadium.
84 mins: GOAL Holland 3-0 Latvia
Another impressive run from Robben sees the Chelsea man feed substitute Makaay on the edge of the area and the Bayern Munich striker beats his marker with one touch before finishing with a fine shot past Kolinko.
82 mins: Robben jinks his way into the Latvia area, but his cross-shot drifts wide. Bleidelis is replaced by Stolcers for Latvia.
79 mins: Rubins embarks on a trademark run at the heart of the Dutch defence - but a fine tackle from Stam steers the ball for a corner.
76 mins: As Davids is replaced by Sneijder the Dutch fans suddenly become excited. The Czech Republic have scored and now lead Germany 2-1. The chances of Holland qualifying are now looking very good. The Germans will need to score twice to go through.
76 mins: Seedorf tries his luck again but Kolinko saves.
73 mins: Another Latvian substitution, with Laizans replacing Prohorenkovs.
72 mins: Free-kick to Holland five yards outside the area. Seedorf's shot hits Kolinko in the chest, but Overmars follows up and the ball ends up in the net - only for the linesman's offside flag to deny the Dutch a third goal.
69 mins: Robben sends over a cross from a free-kick on the right, but the ball bounces for a corner off Stepanovs. Before it can be taken Holland make a surprise change, bringing on Makaay for van Nistelrooy. Stepanovs clears Robben's shot from the corner.
67 mins: Another good cross from Overmars finds Robben unmarked - but the Chelsea winger heads woefully wide.
66 mins: The ever impressive Kolinko claws Robben's cross away from the six yard box, with van Nistelrooy lurking.
64 mins: Overmars bursts down the right flank but his cross is scrambled clear by Latvia.
61 mins: Latvia make the first change of the game, with Southampton striker Parhars coming on for Verpakovskis. And Holland bring on Overmars in place of van der Meyde, whose distribution from the right has been disappointing.
61 mins: Kolinko makes a smart one-handed save from van Nistelrooy's shot. Straight away the Dutch come back and van der Meyde tries his luck - but Kolinko is up to the task again.
56 mins: Another fine tackle from Stepanovs, this time to deny Robben 20 yards out.
53 mins: Reiziger's surging forray into Latvian territory is stopped by a solid tackle from Stepanovs on the edge of the box.
51 mins: A mazy run from Robben ends with a low shot which Kolinko keeps out.
50 mins: Van Nistelrooy will not have a better chance for his hat-trick. From a free-kick the ball breaks to him unmarked just feet from goal, but he slices high and wide.
48 mins: Latvia continue to press. Rubins' shot is deflected wide and from the corner Lobanovs hits the post with a low drive.
47 mins: Latvia nearly score a shock goal after a polished one-touch move down the right that opens up the Dutch defence. Prohorenkovs sends in a low cross - but Rubins' shot is well-saved by van der Sar.
46 mins: The second half kicks off. Neither coach has made any changes at the interval.
HALF TIME Holland have totally dominated the match and thoroughly deserve their 2-0 lead.
Surely this time they will not throw away a two-goal lead? But their fate is in Czech hands and they will be nervously observing matters in Lisbon where the Germans are being held 1-1.
41 mins: Latvia launch a rare attack - virtually their first of the match - but Stam heads Rubins' corner clear of the danger area.
40 mins: Van Nistelrooy so nearly claims a first-half hat-trick. A fine Davids through-ball drops over the Manchester United man's shoulder and he volleys it superbly - but it is directed straight at Kolinko who gratefully sees the ball ricochet to safety.
37 mins: Davids' diagonal ball opens up the Latvia defence, van Nistelrooy collects but his chipped cross is bundled behind for a corner.
34 mins: GOAL Holland 2-0 Latvia
Seedorf's long free-kick from wide on the left is neatly headed back across goal by Cocu at the far post and van Nistelrooy stoops to nod in his second goal of the game from less than two yards out.
33 mins: Robben heads straight at Kolinko from a van der Meyde cross.
31 mins: Robben fires wide from outside the area, as the energised Dutch continue to press.
29 mins: Suddenly all is to play for as the Czech Republic equalise against Germany. News filters through to the players from the jubilant Dutch fans in the Braga stands.
If the Lisbon score remains 1-1 and Holland stay in front, they will go through at Germany's expense.
25 mins: GOAL Holland 1-0 Latvia
Penalty to Holland as Davids bursts into the Latvian box and falls under the challenge of Astafjevs. It looks a highly debatable decision - but van Nistelrooy strokes the spot-kick into the bottom right corner of the goal as Kolinko dives the wrong way.
But the goal will mean nothing as long as Germany stay ahead of the Czechs.
24 mins: Van Nistelrooy is fouled by Stepanovs 30 yards out. The free-kick is taken by Seedorf - but his shot rockets just over the bar.
21 mins: Bad news for both teams comes through from Lisbon, where Germany have taken a 1-0 lead. If the scores stay like this at 90 minutes Germany will be joining the Czechs in the quarter-finals.
19 mins: Van Nistelrooy tries an ambitious shot from 20 yards out, but the ball drifts wide of Latvia's right-hand post.
17 mins: Another searching cross tests Kolinko - and his punch clear is far from convincing.
15 mins: Holland have been in complete control of the opening stages, but Latvia's defence is holding firm.
12 mins: A glorious chance for Holland. Van Nistelrooy beats the offside trap and charges at the Latvia goal - but Kolinko spreads himself and produces an excellent save from point-blank range.
11 mins: Cocu comes close to opening the scoring with a fierce shot from long range - but Kolinko gets down well to turn the ball around his left-hand post.
10 mins: Kolinko leaps to comfortably collect a left-wing cross from Robben.
8 mins: Latvia keeper Kolinko charges out of his area to intercept a long ball before van der Meyde can capitalise.
5 mins: Stepanovs tussles with van Nistelrooy in the box, but this time the referee blows for a foul by the Dutch frontman.
4 mins: A snap-shot from van der Meyde is blocked by in-form defender Stepanovs on the edge of the Latvia area.
1 min: Holland are immediately on the attack and Seedorf shoots over from outside the box after just 28 seconds.
1945 BST: Latvia kick off.
Veteran defender Frank de Boer is drafted into the Holland team for their crunch game with Latvia.
The centre-back - already the most capped Dutch international in history - plays his 111th game as a replacement for the injured Wilfred Bouma.
Under-fire coach Dick Advocaat has also picked Michael Reiziger to
replace the suspended Johnny Heitinga, who was sent off against
the Czech Republic.
Latvia coach Aleksandrs Starkovs sticks with the team that
drew 0-0 with Germany last Saturday.
Both teams have a chance of reaching the quarter-finals - but all depends on the result of the other Group D match between Germany and the Czechs in Lisbon.
If the Dutch win they will go through as long as Germany do not win as well.
Minnows Latvia also need to win and hope the group-winning Czechs can do them a favour in Lisbon.
Holland: van der Sar, Reiziger, de Boer, Stam, van Bronckhorst, Seedorf, Davids, Cocu, van der Meyde, van Nistelrooy, Robben
Latvia: Kolinko, Isakovs, Stepanovs, Zemlinskis, Blagonadezdins,
Bleidelis, Lobanovs, Astafjevs, Rubins, Prohorenkovs, Verpakovskis
Referee: Kim Milton Nielsen (Denmark)