Cardiff held on with 10 men in the last 20 minutes as Chris Burke fired them to fourth in the Championship table.
Peter Whittingham's delightful cross to the far post evaded a crowded defence, Burke controlling with one touch and lashing a ferocious shot into the roof.
Simon Church went close to equalising after Burke missed a glorious chance, before Stephen McPhail was sent off for raising his studs against Jem Karacan.
Cardiff held on, taking Reading's run without a home league win to 13 games.
The Royals have not triumphed in the Championship at their Madejski Stadium base since beating Wolves 1-0 on 21 January.
It looked like it may not end that way after the hosts made a bright start, Cardiff keeper David Marshall called upon inside the opening minute to push away Noel Hunt's shot from inside the box.
Michael Chopra (right) had the best chance of the first half
But the Bluebirds had the better of an entertaining first half, visiting strikers Michael Chopra and Jay Bothroyd terrorising the Reading defence with the former shooting agonisingly wide just before half-time.
Reading emerged from half-time with renewed vigour and Brian Howard's 30-yard rocket forced Marshall into a fine save.
Less than a minute had elapsed before the Cardiff keeper had to tip another long-range effort from Marek Matejovsky round a post.
Against the run of play, Mark Kennedy and Peter Whittingham linked up well down the left-hand side before the winger, making his 100th league appearance for the Welsh side, set up Burke's emphatic strike.
The former Rangers midfielder should have put the game beyond Reading moments later but, with the goal at his mercy, he stood on the ball after Whittingham's cross found him unmarked at the far post.
Reading desperately chased the equaliser and Wales international Church flashed a shot across goal and narrowly wide of the far post.
McPhail received his straight red card from referee Paul Taylor for what was deemed to be a high challenge on Karacan.
But Brendan Rodgers' side created little until injury time when Gylfi Sigurdsson volleyed straight at Marshall.
Keeper Adam Federici goes close to a dramatic late equaliser for Reading
Then, from the Icelander's corner, home keeper Adam Federici crashed an overhead kick goalwards.
Marshall produced a superb save to deny his opposite number a repeat of the dramatic equaliser he claimed in this fixture on Boxing Day last year.
The down side for Cardiff came in the form of injuries to Joe Ledley and Adam Matthews, manager Dave Jones awaiting results of scans on the players.
The Bluebirds were also denied the chance to wear the name of their new sponsors - 777ball.com - on their shirts.
The Far East company mistakenly did not have the appropriate licence for advertising in Europe, a situation they hope to rectify in the near future.
Interview: Reading manager Brendan Rogers
Reading manager Brendan Rodgers said:
"We always dwell on the positives at this club.
"The players don't dwell on that long run without a home win because it can change in a moment. A bit of luck can lead to one win and then you can go straight off on a winning run.
"The crowd can see what we are doing and we are not far away. I am trying to give a new identity to the group and asking them to show courage and pass the ball.
"We played some wonderful football but we need to be killers in the penalty area.
"We can dominate possession and we are only a matter of inches away from being very, very good."
Interview: Cardiff City manager Dave Jones
Cardiff manager Dave Jones said:
"It was a hard-earned win, it always is here.
"I said to the players that if the keeper had scored again in the last minute I would have sacked them all.
"We had some good chances in the first half, the sending off made it a little bit more difficult.
"After that we had to reorganise and play dirty football. I thought our goalkeeper and two centre-backs were magnificent after we went down to 10 men."
Live text and stats
Wednesday, 16 September 2009
20 Karacan (Kebe 78)
10 Hunt (Church 57)
10 McPhail red card
16 Ledley yellow card (Taiwo 87)
27 Matthews (Quinn 32)
08 Chopra (Rae 79)
Ref: TaylorAtt: 16,687
Attempts on target
Attempts off target
90:00+5:15 The referee ends the match.
90:00+4:32 Shot by David Marshall. Save by Adam Federici.
90:00+4:03 Outswinging corner taken right-footed by Gylfi Sigurdsson from the right by-line, clearance by Mark Hudson.
90:00+2:35 Centre by Jimmy Kebe, save made by David Marshall.
90:00+1:42 Shot by Gylfi Sigurdsson. Comfortable save by David Marshall.
90:00+0:44 Headed effort from deep inside the penalty area by Simon Church goes harmlessly over the crossbar.
88:24 Outswinging corner taken right-footed by Gylfi Sigurdsson from the right by-line to the near post, clearance made by Mark
Hudson. Gylfi Sigurdsson takes a shot from deep inside the box clearing the bar.
85:36 Anthony Gerrard manages to make a clearance.
85:36 Substitution Solomon Taiwo is brought on as a substitute for Joe Ledley.
85:36 Corner taken right-footed by Gylfi Sigurdsson from the right by-line,
84:12 Ryan Bertrand sends in a cross, Mark Hudson manages to make a clearance.
82:49 Gylfi Sigurdsson challenges Anthony Gerrard unfairly and gives away a free kick. Free kick taken by Chris Burke.
82:11 Foul by Grzegorz Rasiak on Mark Hudson, free kick awarded. David Marshall restarts play with the free kick.
79:00+5:09 Corner from the right by-line taken by Brian Howard, clearance made by Mark Hudson.
Correction - 77:17 Substitution Gavin Rae is brought on as a substitute for Michael Chopra.
Correction - 77:17 Substitution Jimmy Kebe replaces Jem Karacan.
77:17 Substitution (Reading) makes a substitution, with Jimmy Kebe coming on for Jem Karacan.
77:17 Substitution Kalifa Cisse replaces Marek Matejovsky.
74:59 Marek Matejovsky takes the direct free kick.
74:59 Sent off Stephen McPhail shown a red card.
74:52 Stephen McPhail challenges Jem Karacan unfairly and gives away a free kick.
74:03 Simon Church has an effort at goal from close range which goes wide right of the target.
73:35 Gylfi Sigurdsson has an effort at goal from outside the penalty area missing to the wide left of the goal.
71:57 Alex Pearce gives away a free kick for an unfair challenge on David Marshall. Direct free kick taken by David Marshall.
71:23 Inswinging corner taken by Brian Howard from the right by-line, David Marshall makes a save.
69:17 Gylfi Sigurdsson challenges Peter Whittingham unfairly and gives away a free kick. The free kick is swung in left-footed by
68:44 The official flags Michael Chopra offside. Free kick taken by Darren O'Dea.
68:04 The referee blows for offside against Grzegorz Rasiak. Free kick taken by David Marshall.
67:15 The referee blows for offside. David Marshall restarts play with the free kick.
66:11 Chris Burke is ruled offside. Free kick taken by Darren O'Dea.
61:02 Inswinging corner taken by Gylfi Sigurdsson from the left by-line, Jay Bothroyd manages to make a clearance.
60:48 The ball is crossed by Ryan Bertrand, Anthony Gerrard makes a clearance.
59:49 The ball is sent over by Mark Kennedy, Chris Burke produces a right-footed shot from close in that clears the bar.
57:42 Assist by Peter Whittingham.
57:42 GOAL - Chris Burke:Reading 0 - 1 Cardiff Chris Burke finds the net with a goal from the edge of the penalty box to the top right corner of the goal. Reading 0-1 Cardiff.
56:38 Substitution Simon Church replaces Noel Hunt.
56:38 Free kick awarded for an unfair challenge on Jay Bothroyd by Darren O'Dea. Free kick taken by Mark Hudson.
55:27 Grzegorz Rasiak has an effort at goal from 20 yards. Save by David Marshall.
52:19 The ball is crossed by Ryan Bertrand, save by David Marshall.
51:45 The ball is delivered by Ryan Bertrand, Mark Hudson makes a clearance.
50:54 The assistant referee signals for offside against Grzegorz Rasiak. David Marshall takes the free kick.
50:27 Grzegorz Rasiak is ruled offside. David Marshall takes the free kick.
47:28 Shot by Marek Matejovsky from 25 yards. Save by David Marshall. Inswinging corner taken from the left by-line by Darren O'Dea,
Mark Kennedy manages to make a clearance.
46:16 Brian Howard takes the chance to get an effort at goal. Save by David Marshall. Corner taken left-footed by Brian Howard from
the right by-line, clearance by Mark Kennedy. Inswinging corner taken right-footed by Darren O'Dea from the left by-line,
Mark Kennedy manages to make a clearance.
45:54 A cross is delivered by Shaun Cummings, clearance by Mark Kennedy.
45:01 The referee gets the second half underway.
45:00+2:05 It is the end of the first-half.
44:38 Free kick awarded for a foul by Jem Karacan on Jay Bothroyd. The free kick is delivered left-footed by Peter Whittingham from
right channel. Jay Bothroyd is flagged offside by the assistant referee. Indirect free kick taken by Adam Federici.
44:07 Effort on goal by Brian Howard from just inside the penalty area goes over the target.
42:31 The ball is swung over by Noel Hunt, Anthony Gerrard makes a clearance. Inswinging corner taken left-footed by Brian Howard,
save by David Marshall.
41:02 Drilled right-footed shot by Gylfi Sigurdsson. David Marshall makes a comfortable save.
38:53 Jay Bothroyd has an effort at goal. Save by Adam Federici.
37:20 Effort on goal by Michael Chopra from deep inside the penalty area misses to the right of the goal.
36:49 The offside flag is raised against Michael Chopra. Free kick taken by Alex Pearce.
36:22 The assistant referee signals for offside against Brian Howard. David Marshall takes the indirect free kick.
33:49 Free kick crossed right-footed by Gylfi Sigurdsson from left channel, blocked by Mark Kennedy. Brian Howard decides to take
a short corner.
33:49 Booking Joe Ledley is shown a yellow card.
32:24 Free kick awarded for an unfair challenge on Gylfi Sigurdsson by Joe Ledley.
31:12 Substitution Paul Quinn joins the action as a substitute, replacing Adam Matthews.
31:12 Shaun Cummings sends in a cross, Headed effort on goal by Grzegorz Rasiak from inside the penalty box misses to the right
of the goal.
26:46 The ball is sent over by Chris Burke, clearance made by Alex Pearce.
26:07 Grzegorz Rasiak is caught offside. Free kick taken by David Marshall.
23:18 Jay Bothroyd fouled by Jem Karacan, the ref awards a free kick. Direct free kick taken by David Marshall. Shot by Mark Kennedy
from 18 yards. Alex Pearce manages to make a clearance.
20:49 Free kick awarded for a foul by Jay Bothroyd on Shaun Cummings. Alex Pearce restarts play with the free kick.
18:43 Inswinging corner taken by Peter Whittingham, save by Adam Federici.
17:13 The ball is sent over by Michael Chopra, Jay Bothroyd takes a shot. Save made by Adam Federici. Michael Chopra is adjudged
to have handled the ball. Free kick taken by Jem Karacan.
16:06 Chris Burke produces a left-footed shot from long distance which goes wide right of the goal.
14:41 Mark Kennedy challenges Grzegorz Rasiak unfairly and gives away a free kick. The free kick is swung in left-footed by Brian
Howard, clearance made by Mark Hudson.
13:18 Brian Howard fouled by Joe Ledley, the ref awards a free kick. Darren O'Dea takes the direct free kick.
12:18 The referee blows for offside. Adam Federici takes the indirect free kick.
10:58 Inswinging corner taken by Chris Burke.
6:23 Gylfi Sigurdsson takes a shot and goes harmlessly over the bar. The offside flag is raised against David Marshall.
5:03 Centre by Shaun Cummings, clearance made by Anthony Gerrard.
4:52 Marek Matejovsky crosses the ball, Anthony Gerrard manages to make a clearance.
3:49 Joe Ledley gives away a free kick for an unfair challenge on Brian Howard. Adam Federici restarts play with the free kick.
1:50 Long range effort by Jay Bothroyd goes over the bar.
0:44 Noel Hunt takes a shot from 12 yards. Save by David Marshall. Corner taken right-footed by Marek Matejovsky from the left
by-line to the near post, save by David Marshall.
0:00 The referee gets the game started.
Live text and data provided by The Press Association.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.