The Blues would have progressed with a victory, but trailed within 39 seconds when Edin Dzeko flicked Aleksandar Kolarov's cross down to Stephan El Shaarawy, who smashed home from 25 yards.
Alvaro Morata missed a huge chance to equalise from close range, and El Shaarawy made it 2-0 when ex-Roma defender Antonio Rudiger failed to deal with Radja Nainggolan's long ball forward.
Chelsea had more shots - 14 to 13 - but were three behind when Diego Perotti cracked home from 20 yards after Blues defenders failed to close him down.
Roma should have led 4-0 when Chelsea's defenders all ran to Dzeko, who managed to square to a totally unmarked Perotti, but he fired over when he should have finished.
The Blues were hugely fortunate that Atletico Madrid's failure to beat Qarabag - their game in the Spanish capital ended 1-1 - means Chelsea are still likely to qualify for the last 16 from Group C.
Antonio Conte's side are four points above third-placed Atletico - and a win in their next Champions League game at Qarabag (17:00 GMT on Wednesday, 22 November) will take them through.