The result means it's now impossible for the Scottish champions to finish third in their Champions League group, which offers the consolation of dropping into the Europa League.
Celtic are due to travel to Spain to take on the current title holders, Real Madrid, next week, but the result now matters very little.
Shakhtar dominated the ball early on in the first-half, but Celtic carved out ample chances.
It was end-to-end stuff for a while, but the home side grew into the game as time went on and were feisty in their approach.
By the time 30 minutes had gone, Shakhtar had put their stamp on the game with around a 60 per cent share of the ball.
But Celtic weren't down and out - far from it - as they managed to carve out more chances than the visitors, despite seeing less possession.
Ten minutes before the break, the Celts took the lead, making good on their impressive offensive play, through Georgios Giakoumakis.
The second-half got under-way with the home fans still bouncing from the end of the first period of 45 minutes.
Shakhtar, again, dictated much of the play after the break, but Celtic continued to create opportunities to get forward.
As time went on, it appeared the home side were simply holding onto their slender lead instead of trying to double it.
But Shakhtar equalised before the hour mark, after continually knocking on Celtic's door from the resumption of play.
Mykhailo Mudryk was the goal-scorer, picking up the ball in a counter-attack and impressively weaving through defenders before smashing home to make it 1-1 on the night.
The Celts appeared galvanised by Shakhtar's goal and found a second wind in the final 25 minutes, impressing on the counter-attack.
But it ultimately wasn't enough as the Ukrainians ushered out the result, setting up a showdown with RB Leipzig next week with Champions League progression on the line.