Despite being much the better side, an early strike sealed BVB's fate and prevented them from securing top spot in their group.
The game had just started when the first moment of excitement came about for the fans. Mats Hummels stopped Mauricio Pereyra from going any further in the BVB box and referee Serdar Gözübüyük from the Netherlands decided to give the hosts a penalty - even though Pereyra was starting from an offside position.
Pavel Mamaev took the penalty and left Roman Weidenfeller in the BVB goal with no chance to stop the ball from entering the net to make it 1-0 for Krasnodar.
But Thomas Tuchel's men didn't seem very shocked as they kept on trying to attack. In the eighth minute, Columbian striker Adrián Ramos hit the bar after a shot from just outside the box. Ten minutes later, Krasnodar's goalkeeper Andriy Dykan prevented the ball from going in with a strong save after a decent free kick by Ilkay Gündogan.
No luck for BVB
In the minutes before half-time, it seemed like Dortmund were finally rewarding themselves for their good opportunities, but shots by Ramos, Jonas Hofmann and Sven Bender were all stopped either by a defender, the 'keeper, the bar or post.
After the break, Dortmund had their first chance in the 48th minute, when Marcel Schmelzer's shot from the edge of the box went just wide. Lukas Piszczek had another opportunity in the 54th when his header missed the goal by a few centimetres.
In the 75th minute, a good pass reached Henrikh Mkhitaryan, but he did not manage to score, only hitting the left post.
In stoppage time, Matthias Ginter, who joined the game for Piszczek, managed to shoot from a good position, but his shot missed the goal.
In the end, Krasnodar surprisingly won against Dortmund with a very early penalty kick, despite the Schwarzgelben having several of very good opportunities.