Arsenal moved to within one point of third-placed Liverpool with a deserved but, at the end, nervous victory.
Silva (left) and Baptista both scored for Arsenal
Cesc Fabregas mis-kicked in front of an open goal but Gilberto Silva put Arsenal in front from the penalty spot after Andre Bikey fouled Gael Clinchy.
Julio Baptista toe-poked the ball home from eight yards but Fabregas deflected a strike into his own net late on.
Reading, who had wasted earlier chances, almost equalised but Jens Lehmann saved from Steve Sidwell.
The result extends Arsenal's unbeaten record at home in the Premiership this season - and signals a return to form ahead of their crucial Champions League tie with PSV Eindhoven on Wednesday.
Arsene Wenger's team came into the match on the back of three successive defeats - all of them in cup competitions - but their poor form did not diminish their enthusiasm for flowing, attractive football.
What do you think? Rate the players
And the home side carved open the Reading defence within seconds of the match starting; Freddie Ljungberg just failing to connect with a chip from Fabregas.
Arsenal dominated possession and worked several openings but Baptista shot wide, while a blistering counter-attack culminated with Marcus Hahnemann saving from Ljungberg.
Reading, who conceded three goals in six minutes against Manchester United in the FA Cup on Tuesday, managed to hold firm and gradually asserted themselves upon the match.
The rumbustious Leroy Lita proved a handful for a makeshift Arsenal defence that included Gilberto, while Lehmann saved from Sidwell.
But it was Arsenal who should have led at the break - Fabregas's failure to put the ball into an open goal from Baptista's short pass a contender for miss of the season.
Fabregas almost atoned for his first-half miss with an angled strike from 20 yards that forced a superb fingertip save from Hahnemann.
But there was nothing the American keeper could do to prevent Gilberto from scoring with his penalty kick, which just eluded Hahnemann's dive and nestled into the bottom corner.
The foul was awarded after Clichy cut in from the left and was tripped by Bikey.
Arsenal won a succession of corners, but their next opening came via a superb chipped pass from Fabregas, who lifted the ball over the Reading backline and into the path of Theo Walcott.
Hahnemann smothered Walcott's shot but could not stop Baptista from doubling Arsenal's lead after the Brazilian escaped the attentions of Graeme Murty far too easily.
The game seemed beyond Reading - but they created and wasted three good chances.
Sidwell should have reduced the arrears immediately but the unmarked midfielder headed wide from a corner.
And the former Arsenal player missed with another good opportunity, this time shooting across goal and wide.
Lita then found space down the left but shot straight at Lehmann.
But after Fabregas, stood a yard from the goal-line, deflected the ball into his own net, the Royals almost equalised through Sidwell.
Arsenal boss Arsene Wenger:
"We could have done better, we looked a bit shaky at 2-1.
"We missed a few chances in the second half because we were slow to make important decisions.
"Reading were positive and dangerous and played in an intelligent way. They are one of the few teams that have come here and tried to play."
Reading boss Steve Coppell:
"We had opportunities, but credit to Arsenal - they were very, very patient and when they are in front they play with a different tempo.
"They controlled possession for long periods but we responded to that and played a full part in the game.
"We now have 14 days without a game. We can take stock and recharge out batteries, which is important."
Arsenal: Lehmann, Djourou, Gallas, Silva, Clichy, Ljungberg (Diaby 70), Fabregas, Denilson, Hleb (Senderos 86), Walcott (Aliadiere 71), Julio Baptista.
Subs Not Used: Almunia, Traore.
Goals: Silva 51 pen, Julio Baptista 62.
Reading: Hahnemann, Murty, Ingimarsson, Bikey, Shorey, Little (Doyle 80), Sidwell, Harper (Gunnarsson 71), Hunt (Oster 65), Kitson, Lita.
Subs Not Used: Federici, Duberry.
Goals: Fabregas 87 og.
Ref: C Foy (Merseyside).