Branislav Ivanovic put Chelsea ahead in the 36th minute of the second-round, first-leg match. Blues goalkeeper Thibaut Courtois made five fine stops, including a first-half save on Cavani's glancing header and shots by Zlatan Ibrahimovic and Blaise Matuidi.
The second leg of the total-goals series in the round of 16 is in London on March 11, and Chelsea headed home with an away goal, the first tiebreaker.
In the night's other game, Bayern Munich midfielder Xabi Alonso was ejected from his 100th Champions League game, a 0-0 tie against Shakhtar Donetsk. The game was played in chilly Lviv, 750 miles from Shakhtar's home city of Donetsk, which is in the war-ravaged eastern part of the country.
Alonso was given a yellow card in the 24th minute by Spanish referee Alberto Undiano for a late tackle on Alex Teixeira, then was given a second yellow in the 65th for another late tackle of Teixeira.
On Wednesday, defending champion Real Madrid is at Germany's Schalke and Basel hosts Porto.