Brazil, the five-times champions, took a 10th minute lead in the quarter-final clash through Robinho [ Images ] and dominated the first-half against a Dutch team which initially looked outclassed.
But the Dutch levelled out of the blue in the 53rd minute after a rare mistake from Brazil's usually impenetrable defence, as Felipe Melo [ Images ] headed Sneijder's cross into his own goal.
Then Sneijder headed a winner as the Dutch avenged a quarter-final defeat in 1994 and a semi-final defeat four years later.
Felipe Melo, returning from an ankle injury which kept him out of the second round match against Chile, set up the first goal after 10 minutes.
He threaded a 30-metre pass through the Dutch midfield and Robinho timed his run perfectly to score with a first-time shot past Maarten Stekelenburg [ Images ].
The game turned niggly, although Brazil managed to produced a some flowing moves and should have extended their lead.
Juan volleyed over from close range after a jinking run on the right by Dani Alves and Stekelenburg produced a superb one-handed save to tip away Kaka's [ Images ] curling effort, following a dazzling Robinho run down the left.
The Dutch rarely threatened with Arjen Robben [ Images ] far too predictable to outfox the Brazil rearguard.
But they levelled out of the blue eight minutes after the break when Felipe Melo touched Sneijder's looping cross-shot into his own net.
Kaka missed an excellent chance to put Brazil back ahead, side-footing wide from the edge of the area after the ball was gifted to him by a poor clearance.
They paid dearly in the 68th minute when Dirk Kuyt [ Images ] flicked on Arjen Robben's corner at the near post and Sneijder headed into the net.
Shortly afterwards, Felipe Melo was sent off for stamping on Robben.