Reading FC collected their first win of the new season thanks to a stunning strike from Tom Ince and a goal from Shane Long on his homecoming.
The Royals had to come from behind after going a goal down just four minutes in when Callum O’Dowda headed in.
Paul Ince’s men fought back when Ince was brought down in the box and Long converted from the penalty spot, while Curtis Nelson was fortunate to have not seen red.
With the game in the balance, Ince scored a goal worthy of winning any game as he smacked a fierce effort in from range to get the Royals off the mark for the season.
In their first home game of the new Championship campaign, the Royals already had plenty of injury woes to contend with.
Shane Long came in to make his first start since returning to the club in the summer, while Yakou Meite missed out on the matchday squad with an injury.
The only senior player on the bench was goalkeeper Dean Bouzanis, while the rest of the substitutes were made up of under 23 players.
Meanwhile, former Royals academy graduate Andy Rinomhota was included in Cardiff’s starting line-up after making a summer switch to the Bluebirds.
Having made a slow start on the opening day last week against Blackpool, Reading once again fell victim to a sloppy start in their first home game of the season.
The Bluebirds were ahead with just four minutes on the clock when Callum O’Dowda was left unmarked at the back post from a freekick and nodded a controlled header into the far corner.
O’Dowda had a great opening to deliver Cardiff a second goal less than 10 minutes after going in front when he got into the box on the left and drove a powerful low shot at goal, but Joe Lumley got down excellently to get a strong hand to the ball.
Reading’s first opportunity came when Nesta Guiness-Walker ventured forward and won a free-kick in a dangerous position after a Cardiff player handled his cross, but Junior Hoilett got his bearing wrong and overhit the cross.
Former Cardiff player Hoilett was the first player to go into the book after a mistimed sliding tackle.
The Royals began to look more assured on the ball and started to create chances when Tom Ince spun away from two players on the half way line before his mazy run was halted by a foul.
Reading were then awarded a penalty when Ince raced onto Long’s flick on, rounded Ryan Allsop before he was hauled down by Curtis Nelson.
Despite being the last man and almost certain to receive a red card as his punishment, much to the bemusement of the home support, the referee brandished a yellow card.
Long stepped up to the spot and stroked the ball into the bottom corner to make his home return with a goal.
The equaliser gave the hosts a spring in their step as they commanded much of the remainder of the half.
Their best chance to go ahead came in the 36th minute when Andy Yiadom’s fizzed delivery across the box fell to Guiness-Walker who made contact but send the ball high over the bar from a few yards out.
Reading had an appeal for a penalty turned down late in the half when Guiness-Walkers’ shot appeared to smack the arm of Shelvey Ojo, but the referee waved play on as the sides went in level at the break.
The first big chance of the second-half came the way of the visitors when Joe Ralls’ inswining free-kick evaded everyone and narrowly missed dropping in the far corner.
Cardiff escaped a scare when there was a goalmouth scramble following Ince’s free kick, but Yiadom couldn’t bundle the ball in.
Just a few moments later though, Reading had the lead courtesy of a stunning strike from Ince.
The midfielder received the ball centrally and with the ball bouncing he sent a thunderous shot tinto the back of the net as it flew past the helpless Allsop.
The first Reading change saw Kelvin Abrefa replace Ovie Ejaria in the 66th minute.
Ince made another change with 10 minutes to go as Long was replaced by Kelvin Ehibhatiomhan.
Lumley kept composed in goal and did well to pluck a couple of crosses out of the air.
Reading controlled the final stages of the game comfortably and didn’t allow Cardiff to have any chances as they earned three points in their first Championship home game.
The Royals face an away trip to Rotherham United next weekend.
Reading: Lumley, Yiadom (c), McIntyre, Holmes, Guinness-Walker, Fornah, Hendrick, Ejaria, Ince, Hoilett, Long
Subs: Bouzanis, Abrefa, Clarke, Holzman, Ehibhatiomhan, Leavy, Tuma
Cardiff City: Allsop, Romeo, Wintle, Ojo, O’Dowda, Nelson, Collins, Sawyers, Kipre, Rinomhota, Watters
Subs: Alnwick, Ralls, Etete, Sang, Denham, Philogene, Harris
Goals: O’Dowda 4’, Long 27’ (pen), Ince 63’