Porto tightened their grip on second place in Group D but made life more difficult than it needed to be for themselves in the 2-1 win over APOEL.
Two goals from striker Hulk, the second a penalty early in the second half, secured three points for the Portuguese champions who had fallen behind against the run of play.
They threatened to win convincingly but rarely did their finishing match the build-up play, and when Mariano Gonzalez was foolishly sent off with 15 minutes remaining it could have been costly.
However Porto clung to their lead and now have six points from three matches, plus a re-match against APOEL to come, which on the evidence of this action should result in a third win.
Hulk was involved prominently early on with a couple of early shots, neither which particularly troubled APOEL goalkeeper Dionissis Chiotis.
Chiotis had to make two saves in quick succession in the 18th minute.
Firstly, Raul Meireles lashed a 25-yard strike towards the bottom left corner which the goalkeeper reached well to turn away, however the danger remained and after the ball was returned from the left flank Falcao's acrobatic volley was again well kept out.
Bruno Alves also went close for Porto before, incredibly, APOEL went ahead in the 21st minute.
Nuno Morais delivered a hopeful cross from the left and defender Alvaro Perreira stuck out a boot with the intention of preventing Konstantinos Charalambidis to turn the ball home but with the effect of putting the ball past his own goalkeeper, Helton.
It was their first real threat, and also APOEL's first ever Champions League goal.
Porto's finishing had been hopelessly wasteful, however that changed in the 33rd minute as Hulk finally converted a chance. Falcao seized on a loose ball after some wretched APOEL defending and fed a simple pass to Hulk, who played the ball left-footed across Chiotis and into the bottom right corner.
Porto's chances continued to come and from an indirect free-kick inside the APOEL penalty area, awarded after Chiotis handled a back-pass, Alves saw his shot deflected a foot over the bar.
Rodriguez headed over twice in quick succession before the break.
Porto were gifted a penalty in the second minute of the second half when a cross from the left bounced before brushing Marios Elia's arm, and the keen-eyed assistant referee spotted the offence.
Hulk calmly slotted into the bottom right corner, as Chiotis went the other way, and Porto finally gained the lead their dominance deserved.
APOEL looked out of their depth at Champions League level, and they should have been 3-1 behind in the 53rd minute when Porto frontman Falcao missed an easy chance from Hulk's left-wing cross. Rather than tap in on the run, he sent the ball wide and finished tangled up in the back of the net himself.
Gonzalez was dramatically sent off in the 75th minute for appearing to elbow APOEL's Marinos Satsias, even if there was little thrust behind his action.
APOEL were convinced they should have had a free-kick on the edge of the Porto box as they pushed for an equaliser, but Elia was denied after being apparently tripped, and they barely threatened again.
Teams:
FC Porto Helton, Fucile, Rolando, Bruno Alves, Pereira,Gonzalez, Fernando, Raul Meireles (Sapunaru 90),Rodriguez (Guarin 68), Hulk, Falcao (Farias 87).
Subs Not Used: Nuno, Maicon, Alex, Ricardo Dias.
Sent Off: Gonzalez (75).
Booked: Helton.
Goals: Hulk 33, 48 pen.
Apoel Nicosia Chiotis, Satsias (Papathanasiou 78), Broerse,Grncarov, Elia, Charalambidis, Michael (Alexandrou 60), Morais,Kosowski (Breska 38), Pinto, Mirosavljevic.
Subs Not Used: Kissas, Kyriakou, Jean Paulista, Zewlakow.
Booked: Satsias, Grncarov, Breska, Broerse.
Goals: Pereira 22 og.
Att: 30,399
Ref: Felix Brych (Germany).