Porto 1 Shakhtar Donetsk 1: Last-gasp Aboubakar saves hosts
Porto and Shakhtar were assured of first and second place respectively in Group H ahead of Wednesday's meeting at the Estadio do Dragao and, with both under-strength, the first half was a dull affair.
However, play flowed from end to end after the interval and, after Taras Stepanenko's thumping header had given Shakhtar the lead, Aboubakar's 87th-minute piledriver ensured the spoils were shared.
Porto therefore advance as one of only three unbeaten teams, alongside Real Madrid and Chelsea.
The Portuguese giants are also unbeaten against Shakhtar in six matches, having rescued a point late on.
Julen Lopetegui made nine changes to his Porto side ahead of Sunday's top-of-the-table domestic league clash against Benfica, while Shakhtar's starting XI included four alterations – three due to suspensions – for their final game of 2014.
Shakhtar spurned a glaring opportunity to take the lead four minutes in. Vyacheslav Shevchuk's low cross from the left deceived goalkeeper Andres Fernandez and found Oleksandr Gladkiy at the back post. The striker had the goal at his mercy, but somehow failed to make contact with the ball and the chance went begging.
Porto swiftly settled into their rhythm but, despite monopolising possession for the rest of the half, they were unable to seriously test Andriy Pyatov.
Ricardo Quaresma showcased some crowd-pleasing trickery, but his end product let him down. One speculative drive from distance missed the target, while another shot from the edge of the box went straight at the Shakhtar goalkeeper.
Bernard's pace did torment Porto, but Shakhtar committed few men forward and the diminutive Brazilian often found himself outnumbered.
There was worrying news for Porto towards the end of the opening half, when 17-year-old midfielder Ruben Neves was stretchered off.
Soon after the restart, Bernard's pace - and impeccable first touch - got him through on goal, but Fernandez raced from his line and deflected the ball wide.
From the resulting corner, however, Shakhtar broke the deadlock. Stepanenko attacked Bernard's delivery aggressively, rose above Adrian Lopez and headed powerfully into the roof of the net.
The contest duly opened up and Aboubakar sent a first-time volley narrowly wide after Quaresma had chipped a ball over the back of the Shakhtar defence.
Fernandez then held on to Yaroslav Rakitskiy's header from another Bernard corner, while Porto substitute Bruno Martins Indi headed against the crossbar following a fine Ricardo cross.
Just as it looked as if Shakhtar would hold on, Aboubakar thundered the ball home from the edge of the area, maintaining Porto's unbeaten record.