Barcelona slumped to a 1-0 defeat by Shakhtar Donetsk on Tuesday, spurning the chance to seal early qualification to the Champions League knock-out stages.
Danylo Sikan's dipping header in the 40th minute secured Shakhtar a famous victory as Xavi Hernandez's flat Spanish champions failed to trouble their Ukrainian opponents.
Barcelona still lead Group H ahead of Porto, second, hosting Royal Antwerp later on, with the Portuguese side able to pull alongside the Catalans on nine points with victory.
"We can see we're in a bit of a footballing rut, we have to do a reset," said Barca coach Xavi.
"We played a bad game, we have to admit it."
Xavi said his team had wasted a good chance to progress.
"After two years without qualifying for the last 16, today is a missed opportunity," he continued.
"It's the most inopportune moment. There are a lot of demands (on us), I think that today we couldn't fail and we failed."
After failing to progress from the group stage for two seasons running, Barcelona saw this clash as an opportunity to get the job done with two games to spare.
However Shakhtar, playing their home games in Hamburg because of the Russian invasion of Ukraine, held their own from the start.
Barcelona missed big chances in the first match in October but this time Marino Pusic's team shut down their uninspired visitors, who produced just one shot on target.
Xavi insisted his team's performance in the narrow 1-0 league win over Real Sociedad on Saturday was unacceptable, despite the good result, but his team did not heed the coach's words.
Shakhtar forced Marc-Andre ter Stegen into the first save of the game, with the German goalkeeper denying Mykola Matviienko at the near post after he got in behind Joao Cancelo.
Ilkay Gundogan and Raphinha lashed over from distance as Barca created no danger, with veteran striker Robert Lewandowski woefully disconnected on his return to Germany.
The former Bayern Munich forward has not scored in any of his last six appearances for Barca, amounting to his worst run of goalscoring form for over a decade.
- Sliced open -
The hosts took the lead a few minutes before half-time, easily slicing the visitors open when Giorgi Gocholeishvili took advantage of Barcelona left-back Marcos Alonso being a long way out of position.
The full-back crossed for Sikan, who beat Andreas Christensen in the air and headed beyond the reach of Ter Stegen.
Ter Stegen saved from Gocholeishvili early in the second half as Shakhtar continued as they left off.
Just before the hour Xavi took action, sending on speedsters Alejandro Balde and Lamine Yamal, as well as Pedri, looking to shake up his team's lifeless display.
Barcelona were better but not bright enough, as Shakhtar goalkeeper Dmytro Riznyk enjoyed a quiet night.
"Not so long ago we were playing very good football -- it's a mental issue," said Xavi.
Shakhtar's latest young Brazilian winger, Newerton, scored a stunning second in the final stages but it was chalked off for offside -- it would have been a superb way to crown a glorious night for Pusic's team.
Barcelona had seven minutes of added time to work with but could not find a breakthrough, with Felix unsuccessfully appealing for a penalty after he was clipped on the edge of the box.
The Ukrainian champions, third, celebrated joyously at full-time and now sit only three points behind Barcelona, who host Porto in their next Champions League match on November 28.
"We do things step by step and we stay humble," said Pusic, who was proud of his team's defensive effort.
"We like to attack and we had several good moments tonight, but game organisation comes first.
"If you concede easily at this level there is not a high chance you will win."
Barcelona midfielder Oriol Romeu said his team had to look in the mirror after their disappointing display.
"Every defeat is a warning," he told Movistar.
"We have to be self-critical and see what we did wrong, to correct it quickly."
rbs/dmc/jc