An injury-hit Barcelona made life unnecessarily difficult for themselves during their 2-1 victory over Shakhtar Donetsk at the Estadi Olimpic Lluis Companys, maintaining their perfect Champions League record in Group H.
The hosts were without Robert Lewandowski, Pedri and Raphinha, as well as the suspended Gavi, but ultimately prevailed over their Ukrainian visitors. Ferran Torres' powerful volley and Fermin Lopez's spectacular strike from distance gave Barcelona an emphatic two-goal lead at the break.
Barcelona seemed as if they would canter to three points, but Shakhtar's fighting spirit caused plenty of problems in the second half. Georgiy Sudakov pulled one back as they pushed for a shock equaliser, but Xavi's side managed to hold on for another Champions League win.
How the game unfolded
Despite being forced to field a weakened side for Shakhtar's visit, it didn't take long for Barcelona to find their groove. Lopez danced into the box early on before seeing his effort rebuffed by Dmytro Riznyk, while Joao Cancelo also saw his left-footed shot comfortably held by the Ukrainian goalkeeper.
Just before the half-an-hour mark, Barcelona eventually broke through a resilient Shakhtar. Torres thrashed home a fierce effort after Lopez's shot had struck the post and, while initially being ruled out for offside, the hosts eventually had a well-earned lead after a two-minute VAR check.
With 37 minutes on the clock, Barcelona had their second and it was a simply sensational strike from the increasingly impressive Lopez. Having been at the heart of all the hosts' good work, the youngster fired home a venomous effort from 20 yards with the ball crashing off the inside of the post on its way beyond Riznyk.
The La Liga champions started the second half in a similarly dominant fashion, Joao Felix testing the visiting goalkeeper with an angled header just three minutes after the restart. Torres thought he had doubled Barca's lead around the hour mark but his delicate chip was correctly adjudged to be offside, much to Shakhtar's relief.
However, out of nowhere, Shakhtar were offered a ray of hope. Georgiy Sudakov made a dart beyond Barcelona's backline with Ronaldo Araujo dragged out wide and was eventually supplied by Irakli Azarov, with the midfielder producing a composed finish to cut the deficit.
With panic creeping in around the stadium, Lopez almost restored Barca's two-goal cushion. The midfielder's first effort crashed off the woodwork from the edge of the area before his wonderful looping header was ruled out for offside.
Shakhtar huffed and puffed looking for an equaliser as Barcelona's nerves became more visible, but the hosts just about held on for a third successive Champions League win in the group stage before this weekend's El Clasico.
Barcelona player ratings vs Shakhtar Donetsk (4-3-3)
GK: Marc-Andre ter Stegen - 6/10 - Practically a spectator throughout and was never tested by Shakhtar. Could do nothing for Shakhtar's goal.
RB: Joao Cancelo - 7/10 - Some typically powerful runs down the right flank, supporting Lamine Yamal well. Sharp on the ball and neat in possession.
CB: Inigo Martinez - 6/10 - Some nice long diagonal balls out to Yamal, showcasing his technical qualities. Lost a little composure when Shakhtar pulled a goal back.
CB: Ronald Araujo - 6/10 - Dragged out wide for Shakhtar's goal, leaving a gaping hole behind him for Sudakov to run into. Not his most commanding display in the second half.
LB: Marcos Alonso - 6/10 - Broke beyond Felix well down the left flank and supplied a few dangerous driven crosses that couldn't be reached by a teammate.
CM: Fermin Lopez - 9/10 - A stunning performance, capped by a wonderful goal. Hit the woodwork twice and made some brilliant runs beyond the Barcelona forward line. The only disappointment is that he didn't score more.
CM: Oriol Romeu - 5/10 - Strong in the challenge and relatively composed on the ball. Left for dead by Sudakov's run for Shakhtar's goal, emphasising his astonishing lack of pace.
CM: Ilkay Gundogan - 6/10 - Sloppy in possession at times, but his lovely lofted ball set up the opener.
RW: Lamine Yamal - 7/10 - This kid is pure box office. Such sharp feet and agility, even if lacking a little end product. A joy to watch and is only going to improve.
ST: Ferran Torres - 8/10 - Nice pass for Lopez's goal and an outstanding finish for Barcelona's first from the rebound. Led the line well.
LW: Joao Felix - 4/10 - A really poor display from the Portuguese, constantly losing the ball and overcomplicating things. On the periphery for most of the match.
Substitutes
SUB: Alejandro Balde (71' for Lopez) - 6/10
SUB: Marc Guiu (75' for Felix) - 6/10
SUB: Marc Casado (82' for Lopez) - N/A
SUB: Andreas Christensen (82' for Martinez) - N/A
Subs not used: Pena (GK), Astralaga (GK), Cubarsi, Garrido, Fort.
Manager
Xavi - 7/10 - Dealt a difficult hand with his extensive list of absentees, but picked a Barcelona side capable of just about squeezing past Shakhtar. Xavi is far more likely to be judged on the weekend's Clasico performance.
Player of the match: Fermin Lopez (Barcelona)
READ THE LATEST BARCELONA NEWS, TRANSFER RUMOURS & GOSSIP
This article was originally published on 90min as Barcelona 2-1 Shakhtar Donetsk: Player ratings as Fermin Lopez stars in narrow victory.