Mario Gomez gave the Netherlands a lesson in finishing as Germany left their bitter rivals on the brink of an early exit from Euro 2012.
The Bayern Munich striker turned sharply and slotted home Bastian Schweinsteiger's pass before lashing in a brilliant second from the right.
Robin van Persie, who had wasted a golden chance to put the Dutch ahead, gave them hope with a fine strike.
But Germany held on to all but cement their place in the quarter-finals.
While the Germans just need a point from their last game to reach the last eight, the Dutch face an uphill task.
They must beat Portugal on Sunday, hope Germany beat Denmark, and ensure they finish with a better goal difference than Portugal and the Danes.
"The Germans had possession and quality and looked justifiable second favourites for the tournament, although when Van Persie scored there was a spring in the Dutch step.
"But it was a step too far for them. The Germans are reknowned for getting the job done. Defensively in the two games the Dutch haven't been good enough."
Meanwhile, coach Bert van Marwijk must somehow rouse his players after a devastating defeat by their fiercest foes. The long-standing enmity between the teams has produced era-defining clashes at the 1974 World Cup, the 1988 European Championship and the 1990 World Cup.
The Dutch, who wasted 28 shots at goal in losing their opening game 1-0 to Denmark, made the brighter start when a long ball from Mark van Bommel caught the German defence napping.
Van Persie, as guilty as anyone of profligacy against the Danes, had time to take a touch, but instead chose a first-time volley, which was easily saved by Manuel Neuer.
Germany hit back with a volleyed effort of their own as Mesut Ozil's strike from the edge of the area cannoned off the near post and into the arms of the grateful Maarten Stekelenburg.
Most of the Netherlands' attacking play was channelled through Arjen Robben on the right and the Bayern Munich winger was the provider for Van Persie's next chance, slotting a pass through to the Arsenal striker, who dragged his right-footed effort wide.
Ibrahim Affelay's delivery was less reliable and, after breaking clear down the left, his low cross failed to pick out Van Persie in space in the middle.
Once again, the Dutch were made to pay for their inaccuracy, falling behind midway through the half to a moment of German precision.
Thomas Mueller cut in from the right and fed Schweinsteiger, whose inch-perfect through-ball was brilliantly controlled on the spin by Gomez, who then wrong-footed the goalkeeper with his finish.
The goal seemed to devastate the Dutch - their early confidence on the ball deserting them, their body language that of a defeated team.
Germany should have doubled their lead when an inexplicably unmarked Holger Badstuber headed an Ozil free-kick straight at Stekelenburg from four yards.
But any disappointment was short-lived as Schweinsteiger again fed Gomez, who lashed a delicious shot across the goalkeeper and inches inside the far post.
Van Marwijk made an attacking double-substitution at half-time, sending on Klaas-Jan Huntelaar and Rafael van der Vaart. But the withdrawal of captain Van Bommel left a giant hole in front of the Dutch back four, allowing centre-back Mats Hummels to stroll through and almost put the game beyond doubt.
Van Persie gave the Dutch hope when he forced Neuer into a smart one-handed save with a half-volley from the edge of the area, and Wesley Sneijder's goal-bound shot was superbly blocked by Jerome Boateng.
Their reward for a period of concerted pressure arrived when Van Persie finally found his range in style, darting in from the left flank and arrowing a low shot past Neuer with his weaker right foot from 25 yards.
Roared on by a sea of orange in the stands, the Dutch pressed hard for an equaliser, with Van Persie's claims for a penalty after going down under a challenge from Hummels waved away by the referee.
But their efforts thereafter too often fizzled out the edge of the area, their growing frustration and disjointedness encapsulated in the sight of the substituted Robben vaulting the advertising hoardings on the far side of the pitch rather than running across to be replaced by Dirk Kuyt.
Indeed, it was Germany who came closest to a late goal when Stekelenburg allowed a backpass to run across his body, recovering just in time to prevent substitute Miroslav Klose from scoring the simplest of goals.
- 01 Stekelenburg
- 02 Van Der Wiel
- 03 Heitinga
- 04 Mathijsen
- 15 Willems Booked
- 06 Van Bommel (Van der Vaart - 46' )
- 08 De Jong Booked
- 10 Sneijder
- 11 Robben (Kuyt - 83' )
- 16 Van Persie
- 20 Afellay (Huntelaar - 46' )
- 12 Vorm
- 22 Krul
- 05 Bouma
- 13 Vlaar
- 21 Boulahrouz
- 14 Schaars
- 17 Strootman
- 23 Van der Vaart
- 07 Kuyt
- 09 Huntelaar
- 18 De Jong
- 19 Narsingh
- 01 Neuer
- 05 Hummels
- 14 Badstuber
- 16 Lahm
- 20 Boateng Booked
- 06 Khedira
- 07 Schweinsteiger
- 08 Ozil (Kroos - 81' )
- 13 Mueller (Bender - 90' )
- 10 Podolski
- 23 Gomez (Klose - 72' )
- 12 Wiese
- 22 Zieler
- 03 Schmelzer
- 04 Howedes
- 17 Mertesacker
- 02 Gundogan
- 09 Schurrle
- 15 Bender
- 18 Kroos
- 19 Gotze
- 21 Reus
- 11 Klose
Live Text Commentary
Full Time The match has reached full-time.90:00 +1:07 Substitution
Substitution Lars Bender replaces Thomas Muller.90:00 +0:04
Free kick taken by Jerome Boateng.90:00 +0:04 Booking
Booking Jetro Willems receives a caution for unsporting behaviour.89:47
Thomas Muller fouled by Jetro Willems, the ref awards a free kick.88:23
Thomas Muller gives away a free kick for an unfair challenge on Nigel De Jong. Direct free kick taken by Maarten Stekelenburg.88:06
Short corner taken by Toni Kroos.87:21
Short corner worked by Toni Kroos.86:38 Booking
Booking Jerome Boateng is cautioned.84:55
Rafael Van der Vaart has an effort at goal from outside the box which goes wide right of the target.83:20
Rafael Van der Vaart is penalised for handball and concedes a free kick. Bastian Schweinsteiger restarts play with the free kick.82:02 Substitution
Substitution Dirk Kuyt joins the action as a substitute, replacing Arjen Robben.79:49
Thomas Muller takes the direct free kick.79:49 Substitution
Substitution Toni Kroos is brought on as a substitute for Mesut Ozil.79:49 Booking
Booking Nigel De Jong goes into the referee's book for unsporting behaviour.79:44
Nigel De Jong challenges Philip Lahm unfairly and gives away a free kick.79:22
Mesut Ozil takes a shot. Johnny Heitinga gets a block in.78:19
The ball is delivered by Jetro Willems.76:49
Mesut Ozil gives away a free kick for an unfair challenge on Nigel De Jong. Free kick taken by Jetro Willems.72:26 Goal scored
Goal! - Robin van Persie - Neth'lands 1 - 2 Germany Robin van Persie scores a goal from the edge of the area to the bottom right corner of the goal. Holland 1-2 Germany.
Direct free kick taken by Johnny Heitinga.71:20 Substitution
Substitution Miroslav Klose is brought on as a substitute for Mario Gomez.71:20
Foul by Thomas Muller on Arjen Robben, free kick awarded.71:07
Corner taken right-footed by Wesley Sneijder.70:25
Shot by Wesley Sneijder. Blocked by Jerome Boateng.69:06
Mario Gomez has an effort at goal from close range which goes wide right of the goal.68:23
Effort from the edge of the area by Arjen Robben goes wide of the right-hand upright.66:28
Wesley Sneijder gives away a free kick for an unfair challenge on Sami Khedira. Bastian Schweinsteiger restarts play with the free kick.64:26
The ball is swung over by Arjen Robben, Bastian Schweinsteiger manages to make a clearance.64:05
Corner taken by Mesut Ozil played to the near post.62:45
The ball is crossed by Lukas Podolski, Gregory Van Der Wiel gets a block in.61:39
Effort from long distance by Wesley Sneijder goes wide right of the target.59:06
Philip Lahm takes a shot. Johnny Heitinga gets a block in.57:23
Arjen Robben produces a cross, Robin van Persie takes a shot. Save made by Manuel Neuer.56:30
Inswinging corner taken right-footed by Wesley Sneijder from the left by-line to the near post, Joris Mathijsen has a header from close in and clears the crossbar.55:57
Effort on goal by Arjen Robben from just inside the penalty area goes over the target.55:32
The referee blows for offside against Mesut Ozil. Maarten Stekelenburg restarts play with the free kick.55:24
Mesut Ozil delivers the ball.52:49
Unfair challenge on Johnny Heitinga by Thomas Muller results in a free kick. Johnny Heitinga restarts play with the free kick.51:43
Mats Hummels takes a shot. Save by Maarten Stekelenburg. Mats Hummels takes a shot. Maarten Stekelenburg makes a save. Outswinging corner taken from the left by-line by Mesut Ozil.51:07
The ball is crossed by Jetro Willems, Mats Hummels gets a block in.49:26
Rafael Van der Vaart concedes a free kick for a foul on Thomas Muller. Free kick taken by Bastian Schweinsteiger.49:16
Wesley Sneijder crosses the ball, Holger Badstuber makes a clearance.45:33
Gregory Van Der Wiel gives away a free kick for an unfair challenge on Lukas Podolski. Bastian Schweinsteiger crosses the ball in from the free kick, Arjen Robben gets a block in. Corner taken by Bastian Schweinsteiger from the left by-line, clearance made by Klaas-Jan Huntelaar. The referee blows for offside against Thomas Muller. Gregory Van Der Wiel restarts play with the free kick.45:01
The referee starts the second half.45:01 Substitution
Substitution Rafael Van der Vaart replaces Mark Van Bommel.45:01 Substitution
Substitution Ibrahim Afellay leaves the field to be replaced by Klaas-Jan Huntelaar.45:00 +2:32 Half time
Half Time The half-time whistle blows.45:00 +0:51
Free kick awarded for an unfair challenge on Lukas Podolski by Mark Van Bommel. Bastian Schweinsteiger has an effort direct from the free kick, Maarten Stekelenburg makes a save.44:53
Foul by Jetro Willems on Mesut Ozil, free kick awarded. Free kick crossed right-footed by Bastian Schweinsteiger from right wing, clearance made by Joris Mathijsen.40:46
Shot from outside the penalty box by Jerome Boateng goes wide right of the goal.40:32
Short corner worked by Wesley Sneijder.37:35
The assist for the goal came from Bastian Schweinsteiger.37:35 Goal scored
Goal! - Mario Gomez - Neth'lands 0 - 2 Germany Goal scored by Mario Gomez from deep inside the penalty area to the top left corner of the goal. Holland 0-2 Germany.35:35
Free kick awarded for a foul by Jetro Willems on Thomas Muller. Mesut Ozil produces a cross, Holger Badstuber takes a shot. Save by Maarten Stekelenburg.32:26
The offside flag is raised against Mario Gomez. Johnny Heitinga takes the free kick.31:17
A cross is delivered by Thomas Muller.29:28
Shot by Arjen Robben. Save by Manuel Neuer.28:40
Bastian Schweinsteiger gives away a free kick for an unfair challenge on Mark Van Bommel. Gregory Van Der Wiel restarts play with the free kick.27:53
The assistant referee flags for offside against Mario Gomez. Joris Mathijsen takes the free kick.26:56
Mesut Ozil challenges Johnny Heitinga unfairly and gives away a free kick. Free kick taken by Johnny Heitinga.26:22
The referee blows for offside. Manuel Neuer takes the direct free kick.25:44
Effort on goal by Arjen Robben from 25 yards. Save by Manuel Neuer.23:14
The assist for the goal came from Bastian Schweinsteiger.23:14 Goal scored
Goal! - Mario Gomez - Neth'lands 0 - 1 Germany Goal scored by Mario Gomez from inside the penalty area to the bottom left corner of the goal. Holland 0-1 Germany.22:49
Lukas Podolski fouled by Johnny Heitinga, the ref awards a free kick. Free kick taken by Philip Lahm.18:19
Wesley Sneijder takes a inswinging corner.17:33
Shot by Lukas Podolski from 20 yards. Blocked by Johnny Heitinga. Ibrahim Afellay sends in a cross, Mats Hummels makes a clearance.17:26
Thomas Muller produces a cross.16:12
Inswinging corner taken from the left by-line by Wesley Sneijder.15:29
Foul by Bastian Schweinsteiger on Wesley Sneijder, free kick awarded. Free kick taken by Jetro Willems.13:34
Inswinging corner taken from the left by-line by Wesley Sneijder.13:08
Ibrahim Afellay delivers the ball, Jerome Boateng gets a block in.10:14
Robin van Persie has an effort at goal from just inside the box that misses to the left of the goal.8:34
The ball is sent over by Ibrahim Afellay, save made by Manuel Neuer.7:56
Mesut Ozil takes a shot from outside the penalty area and strikes the post.6:07
Shot from 12 yards from Robin van Persie. Comfortable save by Manuel Neuer.3:55
Unfair challenge on Thomas Muller by Nigel De Jong results in a free kick. Jerome Boateng restarts play with the free kick.0:00
The match gets underway.
Live data and text provided by our data suppliers