The Netherlands will meet either Ghana or Uruguay, which played a quarterfinal match later Friday, in the semis Tuesday.
The Dutch, trailing at intermission, played with more urgency in the second half than Brazil and it paid off about halfway through the period.
With the score tied 1-1, Arjen Robben sent a Dutch corner kick into the middle of the box where Dirk Kuyt slightly changed the flight with a header. Sneijder was then able to solidly nod the ball into the left side of the net in the 68th minute.
About 5 minutes later, Brazil's Felipe Melo was sent off for stepping on an opposing player, leaving the Brazilians playing a man short the rest of the way.
Brazil broke through first with Robinho taking a long lead pass from Melo and breaking past the Dutch defense. Robinho then easily beat Netherlands goalkeeper Maarten Stekelenburg in the 10th minute.
The score was tied in the 53rd minute on what was ruled an own goal. Sneijder took a short free kick and tried a shot from long range. His high arching attempt just glanced off Melo, who may have also gotten in the way of Brazilian goalkeeper Julio Cesar, and the ball went into the goal.
It was the first own goal charged to Brazil in its World Cup history -- a record 97 games -- but the second time in the current tournament the Netherlands benefited from an own goal. One of the goals in the Netherlands' 2-0 Group E win over Denmark was an own goal.