Sean Morrison headed the Bluebirds in front from a corner just before the interval before m idfielder Nathaniel Mendez-Laing, a summer signing from Rochdale, netted his fourth goal of the season 10 minutes into the second half.
That left Cardiff flying high at the summit, but Vi lla are still searching for their first Championship win after going down 2-1 at the Madejski Stadium.
Steve Bruce’s men found themselves behind four minutes into the second half when Glenn Whelan deflected Adrian Popa’s cross into his own net, which goal-line technology confirmed had crept in.
The Royals, beaten on penalties in last season’s play-off final, then doubled their lead after 55 minutes through a close-range effort from Mo Barrow.
Villa, one of the pre-season promotion favourites under new skipper John Terry, pulled a late goal back through Conor Hourihane but it was not enough to prevent them slipping into the bottom two.
Wolves also made it three league in a row after they won 3-2 at Hull.
The visitors raced into an early lead through Ruben Neves, the Â£15.8m summer signing from Porto, but Hull were back on level terms after 27 minutes when Michael Dawson headed home a corner.
On-loan Atletico Madrid midfielder Diogo Jota put the visitors back in front two minutes ahead of the break, with substitute Ricardo Cavaleiro slotting home a third in stoppage time.
With nine minutes having been added on, Hull pulled a goal back through David Meyler’s penalty, but there was to be no grandstand finale .
Ipswich also have maximum points after a late goal from Jordan Spence secured a dramatic 4-3 win at Millwall.
The Lions were in front after just 43 seconds when Jed Wallace swept home but Ipswich soon levelled through a long-range effort by Joe Garner.
There were then two goals in as many minutes as first Martyn Waghorn put Town ahead, only for Aiden O’Brien to square things up again with a close-range finish after 36 minutes.
Mick McCarthy’s side found themselves in front once more in first-half stoppage time when Republic of Ireland forward David McGoldrick set up Waghorn, a recent signing from Rangers.
Tom Elliott looked to have earned Millwall a point when he made it 3-3 with 10 minutes left, but there was still time for Spence to head in an 87th-minute winner.
Barnsley picked up their first points of the new campaign with a 2-1 home win over Nottingham Forest.
The Tykers took the lead after just four minutes through a header from Matty Pearson, but Daryl Murphy nodded Forest level after 26 minutes.
A close-range strike from Ryan Hedges proved to be Barnsley’s winner five minutes into the second half.
There were no goals at St Andrew’s between Birmingham and Bolton, while Leeds and Fulham were also unable to break the deadlock at Elland Road.
Bristol City grabbed an equaliser deep into eight minutes of stoppage time to bag a 2-2 draw at Brentford, where midfielder Josh McEachran was taken off on a stretcher late on.
City had raced ahead after only five minutes through Josh Brownhill before Ollie Watkins headed in an equaliser after 56 minutes .
Brentford substitute Neal Maupay looked to have secured all three points with 13 minutes to go, but the visitors grabbed a last-gasp draw when Bobby Reid scrambled the ball over the line.
A 58th-minute penalty from Matej Vydra was enough to give Derby a 1-0 home win over Preston while Britt Assombalonga scored twice as Middlesbrough beat 10-man Burton 2-0 at the Riverside Stadium.
Albion’s miserable night on Teesside was compounded when substitute Hope Akpan, who had not been on long, was shown a straight red card for a clumsy challenge after 78 minutes.