Netherlands found the first half extremely difficult, especially trying to get the better of Costa Rica goalkeeper Keylor Navas.
The Levante player made four saves in the first half, notably one from a Wesley Sneijder free-kick that was heading for the top corner.
In saying that, Costa Rica created very little going forward and the Dutch dominated possession throughout the opening stages but went into half-time level.
The second half had little action, until the last ten minutes. Another Sneijder free-kick hit the post directly, before Robin Van Persie had a shot cleared off the line by Yeltsin Tejeda onto the bar and away in the 93rd minute, therefore the match ended 0-0 and went into extra-time in Salvador.
Netherlands continued to dominate in the extra 30 minutes, and Sneijder come closest as the Fenerbahce midfielder hit the woodwork again, this time it was the bar from open play.
Costa Rica were superb though and managed to take it all the way to a penalty shoot-out. Where Louis Van Gaal brought on Newcastle United goalkeeper Tim Krul to save the penalties of Costa Rica and he did just that.
Van Persie, Robben, Sneijder and Kuyt all scored the Dutch penalties, and Krul saved two from Bryan Ruiz and Michael Umana to ensure the Netherlands qualified for the last four where they will play Argentina on Wednesday.