Chelsea recovered from the loss of an early goal and an injury to John Terry to seal a valuable draw in Porto thanks to Andriy Shevchenko's fine strike.
Shevchenko celebrates his equaliser
Terry had to go off after injuring his ankle just seven minutes into the Champions League tie, and things got worse when Raul Meireles volleyed in.
Shevchenko levelled four minutes later, though, firing low into the corner, while Didier Drogba hit a post late on.
Porto's Ricardo Quaresma also struck a post, but neither side found a winner.
The last 16 first-leg clash got off to the worst possible start for Chelsea when influential skipper Terry went over on his right ankle and could not continue.
And, to make matters worse, as the defender was being stretchered off behind the goal, Meireles latched on to Claude Makelele's poor header to lash into the corner on the volley, via a deflection off Frank Lampard.
606 DEBATE: Give your thoughts on the match
It had taken Jose Mourinho four-and-a-half minutes to replace his skipper and Terry's absence did not help the Blues' defence.
However, the goal prompted a change from Mourinho with Arjen Robben - and not Mikel Jon Obi as was planned seconds earlier - replacing Terry, and it paid immediate dividends.
On 16 minutes, the Dutchman surged at the Porto defence and slipped in Shevchenko, who fired low into the far corner with aplomb.
Chelsea's recovery could have been even better had Didier Drogba not headed over unmarked from Frank Lampard's long free-kick.
But, in truth, it was Porto that edged an eventful opening half, with Petr Cech brilliantly denying Lisandro Lopez and Ricardo Quaresma twice going close - the second time striking the woodwork with a delightful effort with the outside of his boot.
John Terry receives treatment before being stretchered off
Robben was replaced at half-time by Mikel, who was tasked with man-marking the 23-year-old.
Strangely, Porto also decided to opt for safety first, with defender Marek Cech replacing goalscorer Meireles and, as a result, the second half failed to live up to the quality of the first.
Still, though, Ricardo Carvalho had to be at his brightest to clear Bruno Moraes's dangerous cross on 68 minutes, while Adriano looked odds-on to score five minutes from time only to be denied by the linesman's flag.
The Blues almost snatched victory themselves with 11 minutes remaining when Drogba, ineffectual up to that point, fired past keeper Helton only for his effort to cannon off the post from the angle.
However, Chelsea comfortably saw out the game in the end with bookings for Cech, Michael Essien, Michael Ballack and Makelele marring an otherwise satisfactory night's work.
FC Porto: Helton, Bosingwa, Pepe, Bruno Alves, Fucile (Bruno Moraes 64), Gonzalez, Paulo Assuncao, Raul Meireles (Cech 55), Lopez, Postiga (Adriano 77), Quaresma.
Subs Not Used: Vitor Baia, Ricardo Costa, Alan, Joao Paulo.
Goals: Raul Meireles 12.
Chelsea: Cech, Diarra, Terry (Robben 14), Carvalho, Bridge, Essien, Makelele, Ballack, Lampard, Shevchenko (Kalou 88), Drogba, Robben (Mikel 47).
Subs Not Used: Cudicini, Geremi, Ferreira, Wright-Phillips.
Booked: Makelele, Essien, Cech, Ballack.
Goals: Shevchenko 16.
Ref: Massimo Busacca (Switzerland).