Roberto Di Matteo's side fell behind following a Pavel Pogrebnyak header and a Petr Cech blunder, but Fernando Torres completed a comeback before Branislav Ivanovic's late goal
Frank Lampard opened the scoring with a powerful first-half penalty after Eden Hazard, who impressed once again, had been tripped by Chris Gunter.
Reading equalised shortly after through a thunderous Pavel Pogrebnyak header, before Petr Cech let a Danny Guthrie free kick squirm from his grasp and into his own net.
But Adam Federici followed suit, allowing a Gary Cahill shot to skid away from him, and with less than ten minutes remaining, Torres was left with the simplest of finishes after good work by Juan Mata and Ashley Cole.
Branislav Ivanovic swept into an open goal in stoppage time, with Federici out of his area after attacking a corner.
Hazard, who had caught the eye in his Premier League debut against Wigan, was involved inside two minutes, racing onto a pass from Mata on the left hand side, but the Belgian’s shot across goal failed to find the target and rolled wide.
Just five minutes later Chelsea went closer, as a lovely fluid passing move involving Torres and Ivanovic launched an attack for the returning Ramires, but the midfielder chose to test Adam Fedrici rather than play the Chelsea striker in with the goal at his mercy, and the Reading keeper palmed the ball away.
Reading launched a counter-attack from Federici’s save, but lone striker Pavel Pogrebnyak flashed his shot wide, before Torres would get his first chance of the match.
The Spain international displayed some excellent trickery to deceive Jem Karacan and Kaspars Gorkss to make space in the penalty area, but his shot was blocked and flew to safety.
It was more Chelsea skill that would create the chance for the opening goal, as Hazard had his standing leg tripped in the box by Gunter, leaving match official Lee Mason with the easy decision to award the penalty.
Lampard stepped up and drilled low and powerfully to Federici’s right and, though the shot stopper dived the right way, he had little chance of keeping the spot kick out.
The home side’s lead lasted little more than five minutes though, as Pogrebnyak headed Reading level.
Garath McCleary exchanged a quick one-two with Danny Guthrie before finding the Russian, who showed expert movement to beat Gary Cahill and head into the top corner beyond Cech.
And, just before the half hour mark, the visitors were in front after John Terry gave away a free kick for a foul on Jobi McAnuff around 20 yards from goal.
Guthrie blasted low and hard at Cech, but the 30-year old spilled a regulation save and could only watch the ball trickle into his net.
Chelsea had chances to equalise before the interval but Hazard fired over from distance before crossing for Torres, who nodded just wide, while Alex Pearce was inches away from extending the visitors’ lead, but could not connect with an Ian Harte free kick.
The Blues wasted no time in attempting to get back into the game after the break as Torres pulled back to the edge of the box for Ivanovic, but the defender’s shot sailed a long way over the bar.
But, with his side unable to break Reading down in the early stages of the second half, Roberto Di Matteo handed Oscar his Stamford Bridge debut, in place of compatriot Ramires.
Oscar was immediately among the action, nicking the ball away from Karacan, who upended the Brazilian and picked up a yellow card.
With over an hour played, Chelsea were finally able to carve out a second half opening and after some pinball in the box following an Ivanovic pass, the ball fell to Hazard, but his shot was blocked by Pearce when Federici may well have been beaten.
Di Matteo was forced into another change as the hosts chased the elusive equaliser and replaced John Obi Mikel with Daniel Sturridge.
But it was a defender who would pull the scores level in the 70th minute, when Cahill’s speculative long range effort bounced in front of the outstretched palms of Federici, who pushed the stinging shot into the bottom corner.
The equaliser appeared to have given Chelsea the impetus to press for a winner, with Juan Mata going close with a shot, beating Federici but curling wide.
And it was Mata again who went close with ten minutes remaining, scuffing wide after an Ivanovic cross cannoned into his path.
Just moments later though, Chelsea scored the winner as Ashley Cole darted onto a pass inside the box and squared for Torres, who got ahead of the resolute Reading backline and tapped into an empty net.
There were suspicions of offside surrounding the goal, but Chelsea took the three points in their first home game of the season as Federici came up for a corner and left his goal exposed, allowing the hosts to break through with Hazard, who gifted Ivanovic an open goal in the dying moments.