Cardiff controlled the majority of play at Barnsley and took the lead when Ben Nugent headed home his first career goal in the 22nd minute.
They doubled their advantage six minutes into the second half when Aron Gunnarsson nodded in another Peter Whittingham delivery. Barnsley did at least make a game of it when Jacob Mellis tucked home from close range 14 minutes from time, but the visitors held on - despite the late dismissal of Simon Lappin.
Palace surrendered top spot after going down at Elland Road, Luciano Becchio and Paul Green the men on target as Neil Warnock's Leeds kicked off their new era in style after having been bought by GFH Capital this week. Peter Ramage got a late consolation for the Eagles but they could not find an equaliser.
Leicester climbed to third thanks to their 2-0 triumph at Sheffield Wednesday - while Middlesbrough and Hull were both losing.
Ben Marshall scored one goal and set up another on his return to Hillsborough as the Foxes consigned the Owls to a fourth straight league defeat.
Middlesbrough suffered a surprise 3-1 loss against Bristol City at the Riverside, the lowly Robins ending an 11-game winless run to move out of the relegation zone.
City took a shock lead in foggy conditions through Albert Adomah - a goal Boro goalkeeper Jason Steele will not want to see again - but high-flying Boro drew level before the break when Ishmael Miller netted after a penalty-area scramble. Shortly after the hour mark Stephen Pearson put the visitors back in front before Steven Davies netted.
Hull went down 1-0 at home to Burnley, Dean Marney notching the only goal of the game to halt the Clarets' mini slide under new boss Sean Dyche, while in-form Millwall climbed above opponents Blackburn and up to sixth after a 2-0 triumph at Ewood Park.
Chris Wood smashed his seventh goal in seven games 19 minutes from time and James Henry sealed it at the death to extend the Lions' unbeaten league run to 10 games.
Wolves took an early lead but were beaten 2-1 at home by Nottingham Forest, while Charlton drew 1-1 with Huddersfield and Blackpool came from two goals down to draw 2-2 at home to Watford.
In the late match a thrilling finish saw Derby County beat Birmingham City 3-2 to move into mid-table, leaving the Blues down in 19th.
Derby had led since the first half though Conor Sammon's 32nd-minute strike, but Marlon King levelled from the spot with 17 minutes left.
Sammon added a second with 10 minutes remaining, but Peter Lovenkrands levelled soon afterwards. But a madcap four-minute spell ended with a Nathan Tyson strike, which proved to be the winner.
Strugglers Ipswich and Peterborough stared the spoils in a 1-1 draw at Portman Road, the duo staying in the bottom two.