Stephan El Shaarawy scored after 38 seconds and pounced on an Antonio Rudiger error to make it 2-0 after 36 minutes.
Diego Perotti struck a fine third after 63 minutes and there would be no Chelsea comeback this time as Roma moved on to eight points, one more than the Blues.
A win in Antonio Conte’s first match in Italy as Blues boss would have seen Chelsea advance to the knockout stages.
Now Conte’s men need points at Azerbaijan’s Qarabag before the final group clash with Atletico Madrid.
Of more immediate priority is Sunday’s Premier League clash with Jose Mourinho’s Manchester United.
N’Golo Kante was not risked here and how Chelsea missed him. He cannot be expected to solve all their problems, though.
Chelsea surrendered a 2-0 lead to trail 3-2 two weeks ago, only for Eden Hazard to equalise at home to Roma.
Another difficult night was in prospect when Aleksandar Kolarov and Edin Dzeko, two former Manchester City players who scored Roma’s goals at Stamford Bridge, combined as the hosts took a first-minute lead.
Kolarov’s cross from deep hit Dzeko on the back of the head and it fell kindly for El Shaarawy to strike a crisp shot into the net.
Hazard tried to rouse his team-mates. First he raced on to Cesc Fabregas’s through pass, but Alessandro Florenzi did enough to put off the Belgian, who shot weakly at Alisson Becker.
Hazard next jinked in from the left and fired a right-footed shot at Alisson before turning on the edge of the box and striking a left-footed effort straight at the goalkeeper.
Chelsea should have been level when Alvaro Morata lifted a gilt-edged chance over after Pedro’s cross.
Hazard next went to ground in the penalty area, but if there was a foul from Florenzi it was outside the box.
David Luiz misjudged a long ball allowing Dzeko through and was relieved to see Thibaut Courtois save from El Shaarawy.
But another error followed when former Roma defender Rudiger allowed Radja Nainggolan’s cross to bounce and El Shaarawy held off Azpilicueta to prod the ball in.
Chelsea scarcely deserved their 2-0 lead in London, but Roma were worthy of theirs here. Chelsea had chances to respond before half-time.
Allison saved Marcos Alonso’s curling effort and Tiemoue Bakayoko headed wide from the following corner.
Gary Cahill was replaced by Willian 10 minutes into the second half and went to sit on the bench, suggesting the captain’s removal was tactical.
And the decision to shift Pedro to right wingback was exploited by Roma after Fabregas, on his 100th Champions League appearance, gave the ball away to Kolarov.
Kolarov fed Perotti, who danced by Pedro and struck a low shot under Courtois.
Perotti spurned an easy chance for his second after Dzeko occupied three Chelsea defenders before finding his team-mate, who lifted the ball over.
Courtois saved Nainggolan’s shot and then denied Kostas Manolas from point-blank range on a night Chelsea will want to forget.
Alisson, Florenzi (Manolas 75), Fazio, Juan Jesus, Kolarov, Nainggolan, De Rossi, Strootman, El Shaarawy (Gerson 74), Dzeko, Perotti (Lorenzo Pellegrini 86).
Courtois, Rudiger, Luiz, Cahill (Willian 55), Azpilicueta, Fabregas (Drinkwater 71), Bakayoko, Alonso, Pedro, Morata (Batshuayi 75), Hazard.
Jonas Eriksson (Sweden)