European champions Chelsea took an 18th-minute lead when Frank Lampard scored from the penalty spot after Eden Hazard was brought down in the box.
But Reading hit back with two goals in four minutes as they went 2-1 up before the half hour mark.
Pavel Pogrebnyak got across Gary Cahill to head Garath McCleary's cross powerfully past Petr Cech.
And Cech was at fault in the 29th minute when he fumbled Danny Guthrie's 25-yard free-kick.
However, Cahill drew Chelsea level in the 69tth minute when a goalkeeping error, this time from Reading's Adam Federici, saw a 30-yard strike somehow find its way into the back of the net.
And nine minutes from time Fernando Torres completed Chelsea's recovery when, despite appearing to be in an offside position, he tapped in a centre from Ashley Cole.
Then, in stoppage time and from a Reading corner with Federici up in the Chelsea box, Branislav Ivanovic added a fourth goal on the counter-attack.