New signing Jason Roberts scored on his Reading debut to beat 10-man Bristol City, despite visiting goalkeeper David James saving two penalties.
Roberts, who signed from Blackburn, bundled home the rebound after James blocked his second-half spot-kick to secure a win for Reading.
City defender Louis Carey also saw red for bringing down Roberts to hand the striker the chance from the spot.
Albert Adomah hit a post for City while James saved a Jobi McAnuff penalty.
Reading also missed a hatful of chances in front of goal, with Jem Karacan, Noel Hunt and Michail Antonio at fault.
City started brightly and keeper Adam Federici had to be alert to tip Wood's header over the bar before keeping out Stephen Pearson's bobbling effort.
Reading rallied and Hunt picked out Antonio with a superb pass only for James to deny the winger, while Roberts's follow-up was blocked by Pearson.
McAnuff should have done better than head Hunt's cross over the crossbar before Hunt himself spurned a glorious opportunity when he failed to guide Antonio's whipped centre past James.
City seemed to be hanging on, but were unlucky not to go ahead when Adomah produced a sensational overhead kick which was superbly kept out by Federici.
Roberts, impressive throughout, went close when McAnuff's cross found the former Blackburn frontman and his flick drifted wide.
The key moment came when Carey fouled Roberts in the box and was dismissed by referee Patrick Miller.
Roberts's poor spot-kick was saved by James but the striker was on hand to slam home the rebound.
McAnuff had two further chances to put Reading out of sight before the Royals skipper saw his 89th-minute spot-kick pushed away.
Reading manager Brian McDermott: "Jason trained with us for the first time on Friday morning and he has done really well to last 70 minutes before coming off," said McDermott.
"He added something to us today and we can build off him because he has power and pace.
"I am really pleased with the signing and he gave the whole place a lift when he walked into the dressing room.
"We may bring more players in before the deadline if there is an opportunity but the players we have got here have done well for me.
"I am sure we feel we could do better and I am sure that will be the case, but if you are going to play well you still need to win and that's what we did."
Bristol City boss Derek McInnes: "On another day we might have pinched something from that.
"There were elements where we controlled the game and we had opportunities to score in the first half.
"I thought the first penalty decision was really harsh. Jason had his arm round our lad's neck.
"They then got a second which was more like a penalty. The Reading lad stood still and let our man run into him.
"David James did great to save the two penalties and even when Roberts scored from the rebound from the first he hasn't exactly rifled it in.
"The performance for me showed a lot to be pleased about. There was plenty of commitment and drive.
"Nicky Maynard didn't start because we won last week and I kept the same front three. But there may be bids for him before the deadline closes and if there are then we will deal with it."
- 01 Federici
- 02 Griffin
- 05 Pearce
- 17 Gorkss
- 24 Cummings
- 04 Karacan
- 07 Tabb
- 11 McAnuff
- 28 Antonio (Cywka - 82' )
- 10 Hunt Booked
- 33 Roberts (Church - 77' )
- 31 Andersen
- 23 Harte
- 41 Cywka
- 09 Le Fondre
- 18 Church
- 01 James
- 05 Nyatanga
- 06 Carey Dismissed
- 26 Foster
- 36 McGivern (Maynard - 85' )
- 14 Skuse
- 17 Bolasie (Wilson - 58' )
- 21 Cisse (Kilkenny - 88' )
- 27 Adomah
- 37 Pearson Booked
- 39 Wood
- 22 Gerken
- 18 Wilson
- 08 Kilkenny
- 10 Maynard
- 34 Pitman
Live Text Commentary
Full Time The referee blows his whistle to end the game.90:00 +4:36
Foul by Jay Tabb on Cole Skuse, free kick awarded. Direct free kick taken by Lewin Nyatanga.90:00 +3:51
Short corner taken by Jobi McAnuff.90:00 +2:09 Booking
Booking The referee cautions Noel Hunt for dissent.90:00 +1:48
Noel Hunt challenges Albert Adomah unfairly and gives away a free kick. Albert Adomah takes the direct free kick.90:00 +1:04
Jobi McAnuff takes a shot. Save by David James. Short corner taken by Noel Hunt.90:00 +0:49
Jay Tabb concedes a free kick for a foul on James Wilson. Direct free kick taken by James Wilson.90:00 +0:18 Penalty
Penalty taken by Jobi McAnuff is saved by David James. Reading 1-0 Bristol City.89:19
Lewin Nyatanga gives away a Penalty for an unfair challenge on Simon Church.87:25
Direct free kick taken by Andy Griffin.87:25 Substitution
Substitution Neil Kilkenny joins the action as a substitute, replacing Kalifa Cisse.87:25
Free kick awarded for an unfair challenge on Andy Griffin by Nicky Maynard.86:41
Short corner worked by Jobi McAnuff.86:29
The ball is delivered by Simon Church, blocked by Lewin Nyatanga.85:35
Albert Adomah sends in a cross, Alex Pearce manages to make a clearance.84:34 Substitution
Substitution Nicky Maynard replaces Ryan McGivern.83:48
Noel Hunt crosses the ball, free kick awarded for a foul by Simon Church on Lewin Nyatanga. David James restarts play with the free kick. A cross is delivered by Jem Karacan, Lewin Nyatanga manages to make a clearance.81:24 Substitution
Substitution Tomasz Cywka comes on in place of Michail Antonio.80:50
The ball is delivered by Kalifa Cisse.76:59 Substitution
Substitution (Reading) makes a substitution, with Simon Church coming on for Jason Roberts.
Albert Adomah produces a cross, save made by Adam Federici.73:47
Shaun Cummings sends in a cross, save by David James.68:58
Jem Karacan challenges Albert Adomah unfairly and gives away a free kick. Direct free kick taken by Albert Adomah, Stephen Pearson takes a shot. Albert Adomah takes a shot. Adam Federici makes a save.68:44
A cross is delivered by Michail Antonio, David James makes a save.67:56
Corner from the left by-line taken by Jobi McAnuff, James Wilson manages to make a clearance.66:49
Jem Karacan produces a cross.65:46
The ball is crossed by Michail Antonio, clearance by Lewin Nyatanga. Corner taken by Jobi McAnuff from the right by-line played to the near post.65:16
Shot from just outside the penalty box by Albert Adomah hits the post.64:18
Chris Wood takes a shot. Alex Pearce gets a block in.61:56
Jason Roberts takes a shot. Save by David James.60:51
The ball is crossed by Jem Karacan, Effort from inside the area by Jason Roberts misses to the left of the goal.60:05
Andy Griffin delivers the ball, Effort from inside the area by Michail Antonio misses to the left of the target.58:47
Inswinging corner taken from the left by-line by Albert Adomah, Kaspars Gorkss makes a clearance.57:48
Albert Adomah restarts play with the free kick.57:48 Substitution
Substitution James Wilson comes on in place of Yannick Bolasie.57:48
Unfair challenge on Chris Wood by Alex Pearce results in a free kick.57:16 Goal scored
Goal! - Jason Roberts - Reading 1 - 0 Bristol C Goal scored by Jason Roberts from close range to the bottom right corner of the goal. Reading 1-0 Bristol City.57:08 Penalty
A save by David James from penalty by Jason Roberts. Reading 0-0 Bristol City.55:41 Dismissal
Dismissal Louis Carey is sent off.55:13
Penalty awarded for an unfair challenge on Jason Roberts by Louis Carey.53:35
Michail Antonio produces a cross.52:54
The ball is sent over by Jem Karacan. Jobi McAnuff takes a shot. David James makes a save.51:49
Shaun Cummings concedes a free kick for a foul on Ryan McGivern. Free kick taken by David James.50:20
Free kick awarded for an unfair challenge on Jay Tabb by Chris Wood. Free kick taken by Andy Griffin.49:04
Yannick Bolasie concedes a free kick for a foul on Jem Karacan. Free kick taken by Shaun Cummings.48:30
Centre by Noel Hunt, Jem Karacan takes a shot. Save by David James.46:27
Cole Skuse produces a cross, Chris Wood takes a shot. Save by Adam Federici.45:55
Free kick awarded for a foul by Jem Karacan on Kalifa Cisse. Direct free kick taken by Cole Skuse.45:01
The match restarts for the second half.45:00 +3:41 Half time
Half Time The whistle is blown to end the first half.45:00 +2:39
The ball is crossed by Michail Antonio, blocked by Ryan McGivern. Outswinging corner taken by Jobi McAnuff from the right by-line, David James makes a save. Effort on goal by Jem Karacan from just inside the box goes harmlessly over the target.44:08
Yannick Bolasie crosses the ball.43:46
Yannick Bolasie sends in a cross, Shaun Cummings gets a block in.42:22
Shot by Kaspars Gorkss from outside the box goes high over the target.41:56
Jobi McAnuff takes the inswinging corner, clearance made by Louis Carey.41:16
Lewin Nyatanga concedes a free kick for a foul on Michail Antonio. Direct free kick taken by Shaun Cummings.40:21
Jobi McAnuff produces a strike on goal direct from the free kick.40:21 Booking
Booking Stephen Pearson goes into the book.40:03
Jem Karacan fouled by Stephen Pearson, the ref awards a free kick.39:22
Long range shot by Albert Adomah goes wide right of the net.36:17
A cross is delivered by Jobi McAnuff, Header by Jason Roberts from deep inside the penalty area misses to the left of the target.35:18
Chris Wood produces a left-footed shot from outside the penalty area and misses left.33:52
Jason Roberts fouled by Louis Carey, the ref awards a free kick. Jobi McAnuff takes the direct free kick.32:43
Kaspars Gorkss gives away a free kick for an unfair challenge on Chris Wood. Direct free kick taken by Kalifa Cisse.32:26
The ball is swung over by Albert Adomah.31:33
The assistant referee signals for offside against Noel Hunt. Free kick taken by David James.30:56
Michail Antonio concedes a free kick for a foul on Louis Carey. David James restarts play with the free kick.30:28
Michail Antonio delivers the ball.28:22
Michail Antonio gives away a free kick for an unfair challenge on Stephen Pearson. Stephen Pearson takes the free kick.27:33
Ryan McGivern fouled by Michail Antonio, the ref awards a free kick. Lewin Nyatanga takes the free kick.25:23
Unfair challenge on Jem Karacan by Chris Wood results in a free kick. Adam Federici takes the free kick.25:06
Ryan McGivern crosses the ball.24:04
Corner taken by Stephen Pearson from the right by-line, Kaspars Gorkss makes a clearance.21:54
Albert Adomah has an effort at goal from 12 yards. Save by Adam Federici.20:11
Noel Hunt is ruled offside. Louis Carey takes the free kick.18:40
Yannick Bolasie has an effort at goal from outside the area missing to the wide right of the goal.17:36
Michail Antonio delivers the ball.16:17
Jobi McAnuff concedes a free kick for a foul on Yannick Bolasie. Louis Carey takes the free kick.15:42
Louis Carey gives away a free kick for an unfair challenge on Noel Hunt. Andy Griffin takes the free kick.14:39
Noel Hunt crosses the ball, Header by Jobi McAnuff from deep inside the penalty area misses to the left of the target.10:58
Kaspars Gorkss takes a shot. David James makes a save. Outswinging corner taken right-footed by Jobi McAnuff from the right by-line, Header from deep inside the area by Alex Pearce goes harmlessly over the crossbar.10:47
Michail Antonio takes a shot. Save by David James.8:54
Michail Antonio takes a shot. Blocked by Ryan McGivern.7:54
Jobi McAnuff has an effort at goal from just outside the box which goes wide of the left-hand upright.6:48
Stephen Pearson takes a shot. Blocked by Kaspars Gorkss. Short corner taken by Stephen Pearson from the right by-line.5:39
The assistant referee signals for offside against Jason Roberts. Free kick taken by Lewin Nyatanga.3:08
Ryan McGivern delivers the ball, Chris Wood takes a shot. Adam Federici makes a save. Corner taken by Albert Adomah from the left by-line, clearance by Kaspars Gorkss.0:00
The referee starts the match.
Live data and text provided by our data suppliers