Stephan El Shaarawy put the hosts ahead with a brilliant strike after just 39 seconds – the fastest goal in the Champions League this season.
El Shaarawy added a second before half-time after an error from former Roma defender Antonio Rudiger, and the home side took advantage of another mistake to score a third in the 63rd minute through Diego Perotti.
The win sees Roma move to the top of the group, one point ahead of Chelsea, who, on a night when they were well below their best, were grateful to see Qarabag hold Atletico Madrid to a 1-1 draw in Spain.
That result means Chelsea are still well positioned to finish in the top two in Group C, and was the only positive as the Blues suffered their joint-biggest defeat under Antonio Conte.
Roma made a dream start in the Italian capital as El Shaarawy fired in a superb first-time effort from the edge of the box with just 39 seconds on the clock.
Chelsea looked as though they would soon respond in an open game as Eden Hazard was denied by Alisson and then Alvaro Morata shot over from close range.
But it was Roma who scored next after a poor error from Rudiger, letting a long ball run past him for El Shaarawy to latch onto and flick past Thibaut Courtois.
Tiemoue Bakayoko should have reduced the deficit late in the first half but he headed wide from a corner.
Willian was introduced in the 56th minute but Chelsea continued to make too many errors and were eventually punished as Cesc Fabregas misplaced a pass and Perotti fired in from 25 yards.
Chelsea showed little urgency in chasing a comeback and were fortunate not to lose by more as Perotti blazed over after some terrible defending and then Kostas Manolas saw a point-blank header saved by Courtois.