Cardiff 3 (Mason 12, Gunnarsson 17, Miller 35)
Reading 1 (McAnuff 43)
Reading went down to a first defeat in five games as Cardiff took all three points.
Despite the loss, Reading stayed fifth in the League table.
After a good Reading start, Cardiff's Joe Mason scored a neat individual goal - but with the benefit of what looked a certain handball to allow him to take possession in the first instance.
With Reading still reelling, Aron Gunnarsson headed home from a corner, this time Adam Federici and all of his players claiming a shirt pull on our 'keeper.
City got their tails up and scored a third through Kenny Miller, but Jobi McAnuff responded before half time to give us hope.
We came out at the start of the second half with a good tempo, but save for a penalty appeal from Simon Church we didn't get a real chance as Cardiff saw out their advantage well.
As Reading pushed forwards Adam Federici made a couple of very important saves, the second an amazing one-handed stop from Rudy Gestede's header.
And so it finished 3-1, but with such an excellent run of form behind us, we can still look into 2012 with real positivity.
Reading (4-4-2): Federici; Cummings, Harte, Gorkss, Pearce; Karacan (Robson-Kanu 61), Leigertwood, McAnuff (c), Kebe; Church (Le Fondre 61), Hunt
Subs: Andersen, Mills, Tabb
Booked: Karacan (foul 51), Leigertwood (dissent 82)
Cardiff (4-2-3-1): Marshall; Blake, Taylor, Hudson (c), Turner (Gerrard 88); Gunnarsson, Cowie, Whittingham; Mason (Gestede 75), Ralls; Miller (McPhail 88)
Subs: Heaton, Conway
Attendance: 23,655 (1,154 away)
Ref: C Foy
Starting XI team news:
Reading made two changes, Andy Griffin missing out through injury, Ian Harte taking his place. Noel Hunt started up front, Adam Le Fondre on the bench.
Peter Whittingham had a decent sight of goal in the first couple of minutes, and caught it well from 20 yards but pulled it wide of Adam Federici's left hand post.
Moments later Simon Church put in a nice cutback for Noel Hunt, whose effort was blocked, and Mikele Leigertwood almost snaffled the rebound but Cardiff were on hand to clear. Reading were in the ascendancy very early on.
But Cardiff then took the lead and the Royals were desperately unhappy with the officials. Joe Mason went in for a challenge in midfield and seemed to move the ball forward with his hand. But, neither referee Chris Foy or his linesman on the near side saw it as a foul, and he still had a fair amount to do, beating our defensive line with the benefit of a slip and striking home a nice finish.
Reading were rocked by that goal, and five minutes later it was 2-0. Again we were upset with the officials - Federici was devastated as he claimed a shirt pull from City man Aron Gunnarsson as he headed home practically on the line.
The Royals needed to regroup, and Kaspars Gorkss stabbed goalwards from an Ian Harte free kick but City were able to block. Jobi McAnuff soon shot wide from outside the box.
It was a lively first quarter of the game, and Kenny Miller cut inside well to almost get a shot at goal but Harte defended well.
Joe Ralls really should have made it 3-0 on the half hour as Whittingham played a lovely ball over the top, but the youngster's finish was poor and Federici was able to snaffle it up.
Church was then very close to a tap-in from Hunt's low cross but again City defended well.
Incredibly, it was 3-0 after 35 minutes. Whittingham, influential as ever, slipped in a nice ball for Miller and it evaded Karacan by inches, the Scottish international prodding past Federici, who had no chance.
Just before half time Reading gave themselves a foothold in the game, and full credit to Jimmy Kebe for an excellent run that allowed Jobi McAnuff to sidefoot home after Church's neat dummy.
Reading won a couple of early corners after the restart, and Hunt soon tried from range but dragged off target. Church then wanted a penalty for an apparent trip inside the area but there was nothing doing. It looked a decent claim.
Hunt then maybe had a chance from a Harte corner but got too much on it and it went wide of the near post.
On the hour Brian McDermott made a double change, Adam Le Fondre and Hal Robson-Kanu on for Church and the booked Karacan.
City then had a rare effort on goal after McAnuff was dispossessed, but Federici was more than equal to Ralls' effort.
McAnuff had a sight of goal from outside the area with 20 minutes left, but should have kept it down.
Federici then made a stunning stop from close range after a low left wing cross, and City will feel they should have made it 4-1. The game was running away from the Royals somewhat.
And Federici then went one better with a truly magnificent save, somehow clawing away sub Rudy Gestede's header. The Cardiff striker was almost on top of him - how he kept it out one-handed one will never know.
Reading never got the chance they so craved, and Gestede smacked over on the volley as the Royals bombed forward.
Had those decisions in the first half gone in our favour, it my have been a different outcome, but we shall never know, and the run of form has been so good that this defeat was perhaps slightly easier to take than most.