Barcelona ran out winners in the end against Dynamo Kiev in the Champions League, but their defensive frailties were laid bare at times by the Ukrainian side who were unfortunate to lose 2-1 at Camp Nou.
In the first half Barcelona threatened to run away with things, with Lionel Messi scoring from the penalty spot from a foul on him, lashing home with his left foot.
But Ansu Fati went close, Antoine Griezmann missed a virtual open goal and Pedri smashed a shot against the crossbar all in the opening 15 minutes.
Messi, who is still to score from open play this season, also forced three brilliant saves from the 18-year-old Ruslan Neshcheret, playing in just his second match for Dynamo.
His brilliant one-handed parry from a free-kick from the Argentine was a particular highlight and he produced a performance that he can be proud of.
But twice in the second half Dynamo were able to have one-on-one situations with Marc Andre Ter-Stegen and the German, returning from injury, was forced to make two fantastic saves to keep his side ahead.
And Gerard Pique's header from an Ansu Fati cross looked to have put the game to bed on 65 minutes.
But Kiev continued to press forward and deservedly got a goal back, with Victor Tsyhankov sliding in at the back post to poke home a shot parried by Ter-Stegen.
But Barcelona were able to hold on for the points and make it three wins out of three in the group - but it is not a Barca side that is playing fluently at the moment.
Key Events
Barcelona 2-1 Dynamo Kiev: Player Ratings, Match Stats, Player Stats
Substitute in, Bohdan Liedniev.
Substitute out, Vitalii Buyalskyi.
Substitute in, Aleñà.
Substitute out, Pedri.
Goal by Viktor Tsyhankov.
Substitute in, Clément Lenglet.
Substitute in, Trincão.
Substitute out, Sergio Busquets.
Substitute out, Ansu Fati.
Substitute in, Carlos De Pena.
Substitute in, Benjamin Verbič.
Substitute out, Gerson Rodrigues.
Substitute out, Vladyslav Supriaha.
Yellow card for Vitalii Buyalskyi.
Assist given by Ansu Fati.
Goal by Gerard Pique.
Substitute in, Sergi Roberto.
Substitute in, Ousmane Dembélé.
Substitute out, Miralem Pjanić.
Substitute out, Antoine Griezmann.
Penalty scored by Lionel Messi.