Ghana midfielder Sulley Muntari’s 30 yard strike opened the score, while Diego Forlan scored equalizer in the second half.
In the final second of the second extra time, referee pointed to penalty after Luis Suarez handled Dominic Adiyiah’s header on the line. Ghana’s Gyan slammed the ball off the bar and over.
Sebastian Abreu slotted the decisive penalty in the shootout after Ghana's John Mensah and Adiyiah had tame efforts saved by Fernando Muslera and Maxi Pereira had thumped over the bar for Uruguay.
In penalty shootout, Uruguay goalkeeper Fernando Musler became the hero as he made two good saves.
Uruguay will meet the Netherlands on the first semi-final on Tuesday after the Dutch managed to oust Brazil 2-1 earlier in the afternoon.