Ivan Trickovski's goal just after an hour looked as if it might give the Cypriot visitors a smash-and-grab victory, but their lead lasted just three minutes before Jadson levelled with a sweet volley.
The goal was no more than the hosts deserved after bossing both possessions and chances, but in Dionissis Chiotis the Ukrainians were up against a goalkeeper in inspired form.
Shakhtar's draw comes on the heels of their 2-1 defeat to Porto in their Group G opener, leaving them bottom of the standings, while for APOEL the point continues the promising form shown in the unexpected victory over Zenit St Petersburg on matchday one, and they top the pool heading into the next round of fixtures.
Shakhtar dominated the opening period in terms of both possession and chances created, while APOEL's hopes were hit inside three minutes when forward Gustavo Manduca was forced off with a hamstring injury.
The first of the hosts' 14 attempts on goal in the first half arrived in the fifth minute, Willian letting fly from distance only for Chiotis to make a good low save in the corner.
Chiotis was rarely out of the action in the first 45, and having shepherded a few wayward shots from his goal, was next in action again shortly after the half-hour when he had to save from Henrikh Mkhitaryan's left-footed effort.
Mkhitaryan again broke through the APOEL backline just before the interval but again saw his effort well saved by the brave Chiotis, who received a heavy clatter for his troubles as the Shakhtar attacker's momentum carried him into the custodian.
The hosts continued to force the issue after the restart, with Jadson, Willian and Mkhitaryan all peppering Chiotis' goal in a busy period around the 50-minute mark.
But their profligacy was nothing to that of Alex Teixeira, who with 60 minutes on the clock contrived to fire a volleyed effort from four yards wide of the target, after a cross from the left byline had taken Chiotis out of the equation and left the net gaping.
That miss looked exceedingly costly a minute later when APOEL went ahead against the run of play.
On a rare foray into their opponents' half, Konstantinos Charalambidis managed to pick out a perfect pass for Trickovski - who fired home clinically beyond Olexandr Rybka.
Cypriot joy was short-lived, however, with a fired-up Shakhtar getting back on level terms just three minutes later.
Another flowing move was converted with a hint of good fortune after Willian's low cross from the right flicked up off the heels of Teixeira, the ball landing perfectly in the path of Jadson who coolly steered home on the volley.
The hosts continued to press and on 77 minutes Chiotis made another good save, this time from Douglas Costa, whose shot was fading away from the keeper and into the bottom-right corner before his fingertips intervened.
APOEL remained dangerous on the break, however, and seven minutes from full-time Esteban Solari did well with a run from deep, the substitute skilfully ghosting past Razvan Rat only to produce a poor scuffed finish which the goalkeeper saved comfortably.
Jadson fired over and Willian was denied by Chiotis late on as Shakhtar became increasingly frustrated.
Yevgen Seleznev's looping header onto the roof of the net following a corner signalled the end of Shakhtar's goalscoring chances, as APOEL held out for a gritty point.