It eneded goalless after 120 minutes of football, and Costa Rica goalkeeper Keilor Navas did everything to keep his side in the match as Netherlands threatened for most of the 30 minutes that was extra-time.
It wasn't a very bright start to the match as the Netherlands kicked-off and tactically opted to retain posession in the opening exchanges. The dutch managed just over 60% of the ball by passing it around, while Costa Rica opted to sit back in their own half to try and break on the counter-attack.
The first real opportunity on goal only came in the 22nd minute when Robin Van Persie found some space in the box and unleashed a shot, but Navas was up to the task and made a good save, only for the ball to fall for Wesley Sneijder just on the edge of the area, and the midfielder also fired through the Costa Rican defense but another great save from the goalkeeper kept the Dutch at bay.
Costa Rica finally had a chance at goal, albeit scrappy, a well-worked free-kick outside the area created some confusion amongst the Dutch defense and the ball dropped at the back-post which allowed for a header on goal, but an off-the-line clearance saw the ball deflect off the cross-bar and the defense was able to recover and clear their lines.
The Dutch had a couple more half-chances before the half-time break, through lively duo Sneider and Van Persie, but Navas remained alert and did well to lead his side into the break at 0-0.
The second half started much like the first half with the dutch dominating possession but failing to create promising chances on goal. The closest they came in the opening stages of the half was through a Vlaar header that sailed inches over Navas' goal from a Sneijder free-kick.
Netherlands became agitated with the Costa Rican defense and coach Louis Vam Gaal decided to make his first change in the 76th minute as Memphis Depay was substituted for Jeremain Lens. The fresh legs seemed to have lift the Dutch a bit as they went forward with a little more menace.
Sneijder had a fantastic chance in the 82nd minute, only for his well-taken free-kick to be denied by Navas' right-hand up-right, the closest they had got in the entire match. The chance inspired the Dutch as they lanched numerous attacks on the Costa Rican goal, and Van Persie should have given the Netherlands the lead in the 89th minute after Sneijder's cross into the box required little but a tap-in from less than two metres out, but the Machester United striker was unable to meet the ball with a miss-timed swing of his right foot.
After 90 minutes the score remained unchanged largely thanks to Navas, who put up a man of the match performance to deny the Dutch from winning it before extra-time. The 27-year-old shot-stopper continued his outstanding performance though, as he denied Vlaar once again from a Dutch corner in the opening minutes of extra-time.
Klaas Jan Huntelaar came on to replace defender Bruno Martins Indi in the second half of extra-time, but the attacker was unable to produce much. Sneijder, however, was extremely unlucky not to score in the 119th minute when his goalward shot was again denied by the Costa Rican woodwork. Seconds away from full-time and master tactician Van Gaal surprised many with a goalkeeper switch, bringing on Tim Krul in place of Jasper Cillessen.
The tactical substitution proved impactful as the Newcastle United goalkeeper blocked two Costa Rican penalties to ensure a 4-3 victory over the Central American underdogs. The Dutch will now face Argentina in the second semi-final on Wednesday 9 July.
The penalty shoot-out went as follows:
CRC - Borges: GOAL!!!
NED - Van Persie: GOAL!!!
CRC - Ruiz: SAVE!!!
NED - Robben: GOAL!!!
CRC - Gonzalez: GOAL!!!
NED - Sneijder: GOAL!!!
CRC - Bolanos: GOAL!!!
NED - Kuyt: GOAL!!!
CRC - Umana: SAVE!!!