Group G favourites Porto looked on course for a routine win after taking an early lead, but were ultimately denied by Andreas Cornelius' second-half goal.
A second-half goal from Andreas Cornelius secured a commendable 1-1 draw for 10-man Copenhagen against Group G favourites Porto at Estadio do Dragao.
The hosts had taken an early lead when Brazilian midfielder Otavio marked his first appearance in the Champions League proper by firing home from the edge of the box in the 13th minute.
Despite dominating for long periods, however, Nuno Espirito Santo's men failed to undo a resolute Copenhagen defence for a second time and were hit by a sucker-punch seven minutes after the break.
Cornelius had already scored five goals in six games as the Danish side progressed to the group stage for the first time in three years and he maintained that fine run of form by heading home following a Youssef Toutouh cross.
Copenhagen were then forced to play out the final 24 minutes with 10 men after Jan Gregus received a second yellow card for a foul on Oliver Torres.
But Stale Solbakken's men dug deep to secure a vital point and extend Porto's winless European home run to four games.
Despite finding themselves under severe pressure in the opening exchanges, it was Copenhagen who managed to create the first chance as Iker Casillas was forced to palm over a header from Federico Santander.
Having survived that scare, Porto swiftly regained the initiative and duly took the lead in the 13th minute.
After Thomas Delaney conceded possession cheaply close to his own goal, Otavio latched on to a clever backheel from Andre Silva and rifled home a stinging shot from the edge of the box.
To their credit, Copenhagen successfully steadied the ship after that early setback, although they were a touch fortunate not to concede a penalty when Erik Johansson appeared to bundle the lively Otavio over in the box.
And they enjoyed another let-off shortly before the break as Jesus Corona's superb cut-back just eluded the onrushing Silva.
Having failed to capitalise upon their first-half dominance, Porto were stunned when Cornelius made it 1-1 in the 52nd minute.
Toutouh's deflected cross eventually found its way to the former Cardiff City man who sliced his attempted volley straight up into the air, but then responded quickest to nod the loose ball past Casillas.
And although they redoubled their efforts after the dismissal of Gregus, Porto ultimately failed to find a way past the Danish champions, much to the frustration of the home fans.