Anelka, who got the winner when the two teams met at Stamford Bridge, stooped to head home a cross from Florent Malouda in the 69th minute.
The Blues had the woodwork to thank in the first half when Fernando Belluschi’s 25-yard effort smashed off the crossbar. But for the third time in Europe this season, Chelsea emerged winners by a solitary goal and in each game, Anelka was the matchwinner.
Chelsea were quickly into their stride against Porto. In the sixth minute, Malouda was off target with a 25-yard low drive which drifted wide of the target.
The home side almost took the lead in the 20th minute with their first real attack of the game.
Belluschi’s 25-yard drive was palmed into the path of Radamel Falcao Garcia by Petr Cech but the keeper redeemed himself with a fine save at the feet of the Porto forward.
Porto were unlucky not to break the deadlock in the 29th minute when Argentinian Belluschi, playing his first game for a month, again tried his luck from 20-yards.
This time his shot beat Cech in the Chelsea goal but rebounded off the crossbar to safety.
Chelsea hit back, and a 20-yard drive from Deco flashed past Beto’s left-hand upright in the 36th minute.
Time and again Chelsea wasted the ball in good areas, with full-back Branislav Ivanovic one of the main culprits. Chelsea had created nothing in an opening half that was instantly forgettable.
But they made a much better start to the second half and Deco sent a shot flashing beyond the far post in the 52nd minute.
There was more purpose about Chelsea’s play now. In the 67th minute Chelsea stepped it up even more, replacing Ballack with Michael Essien.
Essien, who scored two goals against Wolves last weekend, was left out of the starting line-up after collecting a minor knock on his knee. But clearly Carlo Ancelotti was anxious to add drive to a rather lacklustre midfield.
It brought results, although not from Essien. Yuri Zhirkov broke down the left and his pass found Malouda inside the penalty area. This time the winger’s cross found the head of Anelka for his third goal of the Euro campaign.
In the 80th minute Ernesto Farias brought a fine save from Cech with a low drive from the edge of the penalty area but Chelsea were home and dry.
FC PORTO: Beto, Sapunaru (Farias 80), Rolando, Bruno Alves, Pereira, Belluschi (Guarin 71), Fernando, Raul Meireles, Varela (Hulk 59), Falcao, Rodriguez.
CHELSEA: Cech, Ivanovic, Carvalho, Terry, Zhirkov, Mikel, Ballack (Essien 68), Malouda, Deco (Joe Cole 76), Anelka, Drogba.
Ref: Jonas Eriksson (Sweden).