The hosts took the lead in the 38th minute when Fabio Quagliarella deflected Andrea Pirlo’s shot beyond Petr Cech and Arturo Vidal doubled their advantage after the break.
Substitute Sebastian Giovinco then made the points secure when he slotted his shot under Cech as the goalkeeper rushed out of his area in stoppage time.
The defeat means Chelsea can win their final home game against Nordsjaelland and still become the first holders of the competition to fail to navigate their way out of the group stage.
“I think we showed much better spirit than in the last games,” Cech told ITV1. “In the first half it was very difficult but I think we did really well.
“We created some chances but in such an important game if you create a chance you have to take it. That was the difference. They put on a very good performance and they did really well.
“We said before the game that we have our destiny in our own hands – not any more. We need to do our bit and win our last home game and hope that destiny will be kind to us.
“It’s a very sad moment. Last season, the end of the Champions League was like a dream…I wouldn’t say [now] it’s a nightmare but it’s a huge disappointment.”
ENHANCED ODDS: Get 7/1 on Man Utd to beat Swansea