Germany finish third again
Having led early on, the Germans fell 2-1 behind early in the second half but equalised soon after and Sami Khedira headed the winner eight minutes from time.
GEAR: Get a Germany shirt here
There was still time for great chances at both ends with Diego Forlan hitting the bar with a stoppage-time free-kick.
Forlan and Thomas Muller, scorer of Germany's opener, both finish the tournament on five goals, level with Spain's David Villa and Wesley Sneijder of Netherlands - who can of course add to their tally in Sunday's final.
"When we were trailing we could see the strength of this team. I'm so happy to see them turn it around," said coach Joachim Low, assistant to Jurgen Klinsmann four years ago when Germany also finished third on home soil.
"Champions rise again, we rose to the occasion again. We have every reason to be fully satisfied, no reason for disappointment, we will travel home feeling great."
Uruguay too deserve huge credit for their attacking approach in the match but had to settle for fourth, just as they did last time they reached the semi-finals in 1970 when they were also beaten by then-West Germany in the playoff.
"We showed our purpose and intentions, on a level playing field against a great opponent," said coach Oscar Tavarez.
"We showed we can play any team in the world, there's nothing above this. We lost, but we could have won."
Saturday's game was the sixth time in a row at this tournament that a European team beat a South American one - turning the tables completely from the six-game sequence at the start when South Americans were unbeaten against Europeans.
Miroslav Klose's bid to find the one goal he needed to join Ronaldo at the top of the all-time scorer's list on 15 ended when he was ruled out by flu and spent the match on the bench looking very pale alongside fellow victims Lukas Podolksi and Philipp Lahm.
Attention turned instead to the race for the tournament golden boot when Mueller scored after 19 minutes after Fernando Muslera failed to hold Bastian Schweinsteiger's long-range shot.
Uruguay levelled after 28 minutes through Edinson Cavani after Diego Perez had robbed Schweinsteiger on the halfway line.
Uruguay continued to surge forward after the break and went ahead in the 51st minute when Forlan expertly volleyed in a cross by Egidio Arevalo, only for Marcell Jansen to rise high to head in a cross from Jerome Boateng five minutes later.
As the rain lashed down to add an extra element of drama, the game surged from box to box with Luis Suarez, booed at every touch by sections of the crowd unimpressed by his handball against Ghana, missing several good chances and s