Borussia Dortmund and FC Krasnodar head into half time level at 1-1 after Matthias Ginter's header cancelled out an early Pavel Mamaev strike.
The visitors went ahead after Fyodor Smolov beat Matthias Ginter down the left before the Russian used the outside of his foot to find an unmarked Mamaev at the near post, who passed the ball past a helpless Roman Weidenfeller.
The goal kicked the Germans out of their stride but they created the better chances, with Marcel Schmelzer seeing his shot blocked by Artur Jedrzejczyk.
Henrikh Mkhitaryan had a great chance to level after some neat play from Adnan Januzaj, but the ball was smothered by Andriy Dykan.
Pierre-Emerick Aubameyang went close just before half time after connecting with a Januzaj corner, but the Gabonese international's strike hit the side-netting of Dykan's goal.
Dortmund finally pulled the game level after Park Joo-ho chipped a ball up to Ginter, who rose high and powered his header past the Krasnodar goalkeeper just before the half-time whistle.