Junior Hoilett came back to haunt his former club as he scored the only goal to earn Reading a 1-0 victory and increase the pressure on Cardiff manager Mick McCarthy.
Hoilett scored 25 goals in 184 games for the Bluebirds and helped them into the Premier League in 2018, but he was released by McCarthy this summer.
He returned to Cardiff City Stadium with a vengeance and his fine finish gave Reading the points.
It means Cardiff have now lost their last five successive Championship matches and seven of their last eight in all competitions.
They were booed off at the final whistle.
Cardiff recalled Joe Ralls just a day after the midfielder celebrated 10 years since his league debut for the Bluebirds but captain Sean Morrison was absent.
The Bluebirds had been awful when they were thrashed 4-0 by West Brom in midweek, but they at least carried an early threat against the Royals.
Mark McGuinness had a header saved from a Curtis Nelson cross, with Luke Southwood producing a smart save in the Reading goal.
The presence of Ralls and Wales striker Kieffer Moore meant Cardiff improved on their Baggies showing, although they could hardly have been worse.
Ralls had a shot blocked and McGuinness went close again. To that point Reading had disappointed as an attacking force so it was a surprise when they took the lead before the break.
A long ball forward found its way to Hoilett on the edge of the box. There looked little danger for Cardiff, but the Canada international made fine use of an inch of space to find the bottom corner.
Hoilett refused to celebrate after scoring with Reading's first shot of the afternoon.
Ryan Giles was Cardiff's most threatening player. He produced yet another cross just before the break which Aden Flint spooned over the crossbar.
Cardiff's Sam Bowen had a shot blocked at the start of the second half. He screamed for a penalty claiming his effort had hit Reading captain Liam Moore's hand but the appeals were waved away.
Giles also worked Southwood, who saved easily, and Marlon Pack curled wide from 25 yards as Cardiff built up some momentum and introduced young Wales international Rubin Colwill.
Cardiff then appealed for another penalty after Moore went down and Bowen was again denied by Southwood after the shot on target was deflected wide by a last-gasp Reading block.
Cardiff got increasingly desperate late on and the home crowd's anger was palpable, but neither could stop Reading from hanging on to seal the three points.
Even home goalkeeper Alex Smithies went up for a corner in added time, but Cardiff just couldn't score despite having 25 attempts on goal.
It leaves McCarthy clinging to his job amid an awful run of form which has seen Cardiff supporters turn their back on the experienced manager.
What the managers said...
Cardiff's Mick McCarthy: "I've no idea how we didn't get a result because it's the best performance we've had in weeks. It's bitterly, bitterly disappointing. I can only control what I do on the pitch and what the team does.
"That decision (about my future) is not up to me. I think that performance shows I certainly haven't lost the dressing room. It shows we can get a response. The fans were excellent. Their anger was at me and I'm cool with that. They deserved something out of that game as much as we did."
Reading's Veljko Paunovic: "Junior is a player we have always liked. We would have brought him to the club earlier but for our financial situation. It was a very difficult game, but it's a pleasant feeling to come through.
"I am so proud of our performance, our team spirit, and the grit we showed. It was another clean sheet and although it wasn't pretty, I think we should be very pleased with the progress this team is making."