The second half started slowly, with neither side looking like scoring.
The Netherlands gradually grew in confidence as the half wore on, pushing their midfield further up the pitch and their pressue was rewarded when a Wesley Sneijder shot cannoned off Maximilliano Pereira into the Uruguayan net.
The goal was shrouded in controversy, as Robert van Persie looked to be in an offside position in front of goal when Sneijder shot, but the linesman’s flag stayed down and the Netherlands regained the initiative.
Three minutes later the result looked to have been put beyond doubt when Arjen Robben scored a rare header from a Dirk Kuyt cross to make the score 3-1 with just 17 minutes to play, and the Dutch maestro was unlucky not to score again when he had a clear chance seven metres from goal ten minutes later.
Uruguay pressed forward in a final onslaught, but were unable to break down the Dutch defence until the injury time, when Maxi Pereira scored from a clever free-kick move to give the Netherlands a nervy final two minutes against the two-time world champions.
But it was too little too late for the South Americans, and when the final whistle went, the sea of orange-clad Dutch fans who had made the trip to Cape Town erupted with relief and celebration.
The Netherlands have played in two previous World Cup finals in 1974 and 1978, but lost them both and will be looking to win their first World Cup on Sunday, when they will meet either Germany or Spain for the second consecutive all-European World Cup final.
Uruguay will play a third place play-off against the loser of tomorrow’s semi-final, their best performance in the tournament since 1970.