BELO HORIZONTE, Brazil -- Paulinho scored on a header from Neymar's corner kick in the 86th minute, and Brazil beat Uruguay 2-1 Wednesday night to reach the Confederations Cup final as anti-government protesters clashed with police near Mineirao Stadium.
Seeking its third straight title in the World Cup preparation tournament, Brazil will play in Sunday's championship against the winner of Thursday's semifinal between Spain and Italy.
Diego Forlan could have put Uruguay ahead in the 14th minute, but goalkeeper Julio Cesar dived to his left to stop Forlan's low penalty kick after Brazilian defender David Luiz was called for tugging the shirt of Diego Lugano. Only four of eight penalties kicks in the tournament have been successful.
Brazil took the lead in the 41st. Neymar brought down Paulinho's high ball, and goalkeeper Fernando Muslera saved Neymar's attempt. The loose ball trickled across the penalty area, and Fred scored despite scuffing his shot.
Edinson Cavani took advantage of sloppy defending to tie the score three minutes into the second half, intercepting Thiago Silva's pass to Marcelo after a poor clearance by David Luiz.
Paulinho scored the winning goal when he got away from Martin Caceres at the back post and beat Muslera from 4 yards with an open header after the goalkeeper came off his line.
Outside the stadium, protesters' anger was directed at the government and police. Inside, the animosity was directed from the start at Lugano, the Uruguay captain who enraged Brazilian fans on the eve of the match by accusing Neymar of diving.