In a first half that had few clear chances, it was Uruguay who went into the lead after 23 minutes.
Diego Lugano was pulled back in the box by Costa Rica defender Junior Diaz, and Edinson Cavani scored the penalty to put the two-time world champions ahead.
After half-time, Costa Rica grew into the game and began to find space behind Uruguay’s defence, an area that many felt was a weakness for the team from South America.
This proved correct on 53 minutes as Costa Rica equalised when a loose ball in the Uruguay penalty area was picked up by Campbell, who calmly finished into the bottom corner.
It took only three minutes for the team from Central America to take the lead through an Oscar Duarte header.
Christian Bolonos floated in a free-kick, and Duarte headed into the bottom corner to send Uruguay into disbelief.
Costa Rica’s third goal of the match arrived on 83 minutes through a comfortable finish from Marcos Urena, and ensured a 3-1 win that will give them great belief of qualifying from Group D.
To make things even worse for Uruguay, who were without talisman striker Luis Suarez, they had Maxi Pereira sent off in the 93rd minute for a clear kick on Campbell.