Shakhtar Donetsk came from behind to beat Roma 2-1 in the first leg of their Champions League last-16 meeting Wednesday thanks to a spectacular winner from Brazil midfielder Fred.

The 24-year-old Fred showed why some of Europe's top clubs are reportedly after him with a perfect free kick in the 71st minute, The Washington Post reported with reference to The Associated Press.

Facundo Ferreyra had leveled for the Ukrainian club early in the second half after Cengiz Under continued his fine run of form by giving Roma the lead shortly before halftime.

Read alsoFT: Ukraine's Rinat Akhmetov has $820m of assets frozenRoma dominated the first half but it was the Italian club's Alisson who was the busier of the two goalkeepers, especially as the match wore on.

"I seem to have seen two different Roma teams today on the pitch. After conceding the first goal I should have substituted most of them," Roma coach Eusebio Di Francesco said. "In the first half the team played to attack and then they played to manage I don't know what. For that reason I'm angry.

"I can't think we were presumptuous when winning, it's not as if Roma gets to the final every year. But in the second half we were too sloppy in our passing, something which we were perfect in in the first half."

Manchester United goalkeeper David de Gea was also kept busy as he helped his side to a 0-0 draw in the night's other match.

Shakhtar is playing its home matches in Kharkiv, as the stadium in Donetsk was damaged by the conflict in Ukraine.

There were early chances for both sides with Roma going the closest but Edin Dzeko saw his attempt parried from close range by Andriy Pyatov, who then did well to kick away the ball.

Roma started to take control and took a deserved lead four minutes from halftime. Dzeko put in a perfectly-weighted pass to Under, whose finish bounced off Pyatov and into the far side of the net.

It was the 20-year-old Turkey winger's fifth goal in four matches and the perfect way to mark his Champions League debut.

Shakhtar defender Serhiy Kryvstov was then taken off on a stretcher before the break with a badly sprained ankle and had to be replaced by Ivan Ordets.

However, the home side leveled six minutes after the interval thanks to a mistake from Alessandro Florenzi, who had started the match despite a flu bug.

The Roma midfielder missed Yaroslav Rakitskiy's through ball, allowing Ferreyra to latch onto it and run around Manolas to fire past Alisson.

Alisson pulled off a number of good stops, including a brilliant save to fingertip Taison's effort away, but could do nothing to prevent Fred's 20-yard free kick from going into the top right corner.

Shakhtar almost extended its lead in stoppage time but Bruno Peres did well to clear Ferreyra's effort off the line.

It was another impressive result for Shakhtar, which beat Manchester City and Napoli in Ukraine in the group stages of this season's competition.