Wednesday's result was Brazil's fifth win in five games and meant they will face either Spain or Italy in Sunday's final at the Maracana in Rio de Janeiro. The European duo meet in Fortaleza on Thursday.
Both sides said the decisive moment of the match came in the 13th minute when Chelsea defender David Luiz wrestled Uruguay captain Diego Lugano to the ground. Diego Forlan's weak penalty was well saved by Julio Cesar, who dived to his left to turn it round the post.
"More than having an effect on my team, it had a huge effect on the opponent," Uruguay manager Oscar Tabarez told a news conference.
"They had been second best until then and as of that moment they grew."
Brazil went on to take the lead in the 40th minute when Neymar latched onto to a long ball from Paulinho and his deflected shot fell to Fred who bundled the ball home from just inside the six-yard box.
But it took Uruguay just three minutes of the second half to draw level. The Brazilian defence repeatedly failed to clear the ball and when Thiago Silva's weak pass fell to Cavani he made no mistake with an angled drive.
The second half threw up few good chances and again Paulinho was in the thick of the action. With four minutes remaining the Corinthians midfielder rose at the back post to head home a Neymar corner to seal victory.
Uruguay threw everyone forward in the closing minutes but they could not find an equaliser.
Both sides looked nervous and tense for much of the contest, with neither able to string many passes together.
It was a pattern repeated throughout a match marked by a lack of fluid play or individual brilliance.
Uruguay's front three of Forlan, Luis Suarez and Cavani failed to get the better of Brazil's back-line and Neymar was a shadow of the player who won the man of the match award in his last three games.
Nevertheless the win was Brazil's fourth in four games at this year's tournament and their fifth in a row under Luiz Felipe Scolari, a run that belies their 22nd place in the FIFA rankings, their lowest ever.
It also extends their unbeaten run over their South American rivals to eight games dating back to July 2001.
Scolari said the team had practiced thousands of dead ball situations and that scoring a goal from a corner is evidence that hard work pays off.
"If you keep plugging away something good will happen and that happened today," he said.
"Four wins in four games is important," he added. "We are on the right track."
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.