It was a disappointing display from the Spanish side who had won their first three games in the competition and needed a point to reach the last 16 with two games remaining.
Barcelona manager Javi Hernandez made several changes to his starting XI and despite dominating the match throughout, struggled against a well-organised Shakhtar defence, managing just one shot on target in the game.
22-year-old Sikan gave the Ukrainian side a shock lead in the 40th minute against the five-time European champions, who were in possession throughout the match in Hamburg.
After half time, Gokoleshvili won the ball from the defender Marcos Alonso and hit Ter Stegen directly in the chest.
The goalkeeper made another great reflex save with his right foot to deny Sikan’s close-range effort in the 52nd minute and Neuron A goal was later disallowed for offside.
However, Shakhtar held firm against some late pressure to seal the three points.
“The Champions League demands the highest level and today we didn’t give it, we let out anger. Intensity? No, I’ll put it down to the game today, we didn’t play well. We have to recover and improve.” Javi told Movistar Plus.
Barcelona top Group H with nine points from four matches, three ahead of Porto and Shakhtar.
The Portuguese team has a hand-to-hand game AntwerpThose with no points, after Tuesday.