Matt Smith gave QPR the lead after 15 minutes with a free header from Luke Freeman’s cross, but Neil Warnock’s side soon benefited from some poor defending from the visitors to level the scores.
Nedum Onuoha’s underhit backpass put goalkeeper Alex Smithies under pressure and his hurried attempted clearance cannoned off Junior Hoilett and into the net.
Sol Bamba then headed Cardiff in front in injury time at the end of the first half and although Hoilett had another goal ruled out for a push early in the second period, the Bluebirds claimed all three points.
It was a different story for the other side to begin the day with a perfect record, Ipswich going down 2-0 at home to Fulham, who have now taken five of their six points on the road.
Neeskens Kebano headed the visitors in front on 35 minutes and was also involved in the second just after the interval, his shot being saved by goalkeeper Bartosz Bialkowski only for the ball to fall to Rui Fonte to fire home from a narrow angle.
Barnsley joined Fulham on six points thanks to a 3-0 win over Sunderland, with two on-loan teenagers setting the home side on their way to a comfortable victory.
Chelsea loanee Ike Ugbo, 18, opened the scoring on 31 minutes and 19-year-old Harvey Barnes, who is on loan from Leicester, made it 2-0 with a smart volley just four minutes later.
George Moncur rifled home from 12 yards midway through the second half and the visitors never looked like getting back into the contest.
Norwich fans also suffered a miserable away day as they saw their side concede four goals for the second week running, this time at Millwall.
Lee Gregory scored the opener after 15 minutes and then teed up George Saville to make it 2-0, with Jed Wallace effectively putting the game to bed just before the interval.
Shaun Hutchinson’s header rubbed salt into the wounds for the Canaries faithful, who lost 4-2 at Aston Villa last week.
Sheffield United enjoyed their third home win of the season with a 3-1 victory over Derby, with Billy Sharp scoring his first of the game after just four minutes.
An own goal from Johnny Russell made it 2-0 when the unfortunate midfielder raced back into his own area and, in attempting to cut out a loose ball, drilled it into the bottom corner.
Craig Bryson set up a nervous finish when he pulled one back in stoppage time but Sharp made it 3-1 on the counter attack after Derby goalkeeper Scott Carson had gone up for a corner.
Reading secured their first away points of the season with a 2-0 success at Birmingham thanks to goals from Jon Dadi Bodvarsson and George Evans, while Burton and Sheffield Wednesday had to settle for a point apiece at the Pirelli Stadium.
Gary Hooper gave the visitors the lead in the first half with a delightful flicked finish from Jack Hunt’s cross, but Joe Mason equalised within seconds of coming off the bench midway through the second period.
Elsewhere, the games between Middlesbrough and Preston and Brentford and Wolves both finished goalless.