Ten-man Brazil crashed out of the World Cup on Friday as Holland came from behind to win 2-1 in the quarter-finals.
Robinho had put the five-time champions ahead but a Felipe Melo own goal and a Wesley Sneijder header gave the Dutch victory.
Twice finalists Holland now play Ghana or Uruguay in Cape Town next Tuesday for a place in the final.
Robinho had an early effort chalked off for offside but scored with a first-time shot after Melo played him in.
But thereafter they lost their shape and the Dutch roared back.
Eight minutes after the restart, Sneijder curled over a cross, keeper Julio Cesar missed it and the ball glanced in off Melo's head.
And the Dutch then avenged 1994 and 1998 defeats by the South Americans on 68 minutes when Arjen Robben curled over a corner, Dirk Kuyt headed on and Sneijder headed home.
Melo was sent off for a stamp on Robben in the 73rd minute.