They were cruising when two second-half goals in three minutes from Wesley Sneijder -- his fifth of the tournament -- and Arjen Robben put them 3-1 ahead after earlier long-range strikes by Giovanni Van Bronckhorst and Uruguay's Diego Forlan.
An added-time goal by Maximiliano Pereira then set up a nail-biting finale but the Dutch, who had the edge throughout, survived to set up a second successive all-European final.
They will face either Germany or Spain, who meet in Durban on Wednesday, in a showdown that now guarantees a first European World Cup triumph on a foreign continent.
After pioneering free-flowing Total Football and then losing the 1974 and 1978 finals, as well as being beaten on penalties by Brazil in the 1998 semifinals, the class of 2010 have the chance to rid the Dutch nation of the 'nearly-men' tag.
"I remember those finals very well," said coach Bert van Marwijk. "It was a unique generation with Johan Cruyff the best football player who ever existed.
"It's so great that we've ended up in the final again. We've really achieved something after 32 years but we are not there yet, there is one more match." Cape Town had been relatively starved of drama in its previous seven matches but nobody had any complaints this time as they were treated to the highest scoring semifinal since Germany drew 3-3 after extra time with France in 1982.
Uruguay, who began their unlikely route the final on the same pitch when they held France to a goalless draw, had conceded only two goals in their previous five games and it took something extraordinary to get past them on Tuesday.
Van Bronckhorst, 35, and due to retire from the game after the final, can surely never have struck a sweeter shot than the 35-metre screamer he drove past Fernando Muslera from wide on the left to give the Dutch an 18th-minute lead.
They sat back after that, though, and paid the price when Forlan almost matched his opposing captain by letting fly from a similar range four minutes before the break -- the ball fizzing into the net past the wrong-footed Maarten Stekelenburg.
Uruguay, missing suspended striker Luis Suarez and injured regular captain Diego Lugano through injury, raised brief hopes that they could end their own long wait for glory having won the second of their two titles 60 years ago. However, the Dutch, who introduced attacking midfielder Rafael van der Vaart for the second half, eventually began to regain control.
They regained the lead in the 70th minute when Sneijder's low shot took a deflection and skidded in to make him joint top scorer at the tournament with Spain's David Villa. Three minutes later the tireless Dirk Kuyt crossed for Robben to score with a well-taken header and it looked all over. Robben missed a great chance to make it four soon after and, having been substituted to all-round victory hugs from his team-mates, was a worried man when Pereira pulled one back.
The Dutch then had to defend as if their lives depended on it for another three minutes with Kuyt making one superb block to keep out a goal-bound shot. "I love attacking football but I've tried to teach this team about defending," said Van Marwijk, whose players returned to the pitch an hour after the match to salute the hundreds of orange-clad fans stills singing.
Uruguay bowed out having flown the South American flag further than all their illustrious continental neighbours. "We never gave up and our last goal showed we were trying until the end," said coach Oscar Tabarez. "If you were to chose a mode of losing it would be how we lost tonight."
*Goals 2 3
*Shots 12 11
*On target 6 7
*Corners 4 5
*Off-sides 4 5
*Fouls 15 16
*Yellow cards 2 3
*Possession: 47% 53%