Kleber scored a 51st-minute winner as Porto rallied to beat nine-man Shakhtar Donetsk 2-1 Tuesday in the Champions League.

Brazilians got all the goals in the Group G match at Porto's Estadio Dragao where the home team missed an early penalty.

James Rodriguez broke down the left flank and crossed for the unmarked Kleber to poke in the ball as Porto mostly dictated the play against the Ukrainian team, hitting the woodwork three times.

Kleber's goal completed the turnaround after a mistake by Porto's goalkeeper gifted Shakhtar the lead in the 12th minute. Helton failed to hold a weak shot from outside the area by Willian, spilling the ball for Luiz Adriano to tap in.

Brazilian striker Hulk equalized just before the half hour with a spectacular free kick from 25 yards out before defender Yaroslav Rakitskiy was sent off for a studs-up challenge on Joao Moutinho just before halftime.

Dmytro Chygrynskiy was shown his second yellow card in the 80th.

Hulk had squandered an early chance to put his team ahead, hitting the woodwork from the penalty spot in the 10th, but Olexandr Rybka then barely got his fingers to Hulk's powerful free kick.

''Our finishing was poor ... but we kept our cool, waited for our chances and got the three points,'' Porto coach Vitor Pereira said.

Pereira was making his Champions League debut after replacing Andre Villas-Boas, who moved to Chelsea at the end of last season.

''We were up against a quality team today. They tested us,'' said Pereira, whose side must also face APOEL Nicosia and Zenit St. Petersburg in Group G.

Shakhtar Donetsk, a Champions League quarterfinalist last year, won the UEFA Cup in 2009. Porto won the Europa League, Europe's second-tier competition, last season.

Porto almost took the lead in the fifth minute when Hulk's shot took a deflection, ballooned over the defense, and bounced off the crossbar.

Porto poured forward, with Hulk leading the charge, and the visitor was pinned in defense for long periods.

Eduardo breached the Porto defense in a rare foray before a sliding tackle by Fernando denied him a shot.

Rodriguez also hit the post from outside the area in the final minutes.