Andrey Finonchenko opened the scoring for Shakhter in the 11th minute before Aron Johannsson levelled for the Dutch side before the half-hour mark.
The 1-1 draw meant group leaders AZ dropped points while Shakhter, who started the game bottom of the standings, missed a good chance to boost their chances of progressing to the knockout stages.
The home side showed their intent early on when Gevorg Ghazaryan forced a save from AZ keeper Esteban Alvarado from 20 yards in the second minute.
Sergey Khizhnichenko tested Alvarado again 60 seconds later with another attempt from distance, but this time the Costa Rican got both hands on the ball to keep the Kazakh side out.
Alvarado was kept busy again as he punched Finonchenko's corner clear in the fifth minute and, with a goal looking inevitable, Shakhter did take the lead soon after when the striker put away Aleksandar Simcevic's headed-on assist.
Finonchenko slotted the ball past the busy AZ keeper from close range to give the home side a deserved early lead.
AZ striker Roy Beerens then sent a shot wide before Sergey Khizhnichenko put an effort over the bar at the other end.
However, the Eredivisie side were not behind for long as Johannsson found the equaliser in the 26th minute.
The striker fired Mattias Johansson's assist beyond Shakhter keeper Alexandr Mokin as the teams left the pitch tied 1-1 at half-time.
After the break, the game became a bit more scrappy with both sides struggling to create any real chances until Johannsson saw a header saved by Mokin in the 70th minute.
However, no one was able to find the breakthrough to claim victory as the game wound down to a draw.