Mark Hudson fired home a 57th-minute winner to send Cardiff to the top of the with a 2-1 home win over Birmingham, while previous leaders Brighton slipped up again.
Malky Mackay's men had to battle hard to see off the rejuvenated Blues, who had done the Bluebirds a favour by grabbing a shock win over Gus Poyet's side at the Amex Stadium on Saturday.
Craig Bellamy's 38th-minute opener was cancelled out by Leroy Lita's 54th-minute equaliser for the visitors, before Hudson bundled home a cross from Peter Whittingham to take his side above the Seagulls.
Brighton needed a late equaliser to salvage a point in a 1-1 home draw with struggling Ipswich.
Daryl Murphy converted a Carlos Edwards cross in the 27th minute but substitute Will Buckley levelled with 10 minutes to go. It was not enough to stop Brighton dropping to third behind improving Leicester, who handed Huddersfield their second consecutive home defeat with a 2-0 win.
Anthony Knockaert scored both goals for the Foxes, slamming them ahead with a 35-yard strike in the 30th minute, and adding his second on the hour from close range after Paul Konchesky's ball into the box.
Wolves missed the chance to also leapfrog the Seagulls as they were undone by a late Wilfried Zaha brace for Crystal Palace at Molineux.
Sylvan Ebanks-Blake gave the home side a 53rd minute lead but Zaha's late double in the 67th and 73rd minutes gave Palace another fine away win after Saturday's success at Bolton.
Ian Holloway's Blackpool rediscovered their form with a dramatic 3-2 win over Hull at the KC Stadium.
Despite Matt Phillips' 11th-minute opener for the visitors, the Tigers looked set to take the points when Sone Aluko equalised on 39 and Stephen Quinn made it 2-1 two minutes into the second half. But Blackpool hit back through Kevin Phillips on 71 then substitute Nouha Dicko, who had only been on the pitch for nine minutes when he converted a Kevin Phillips cross for the winner.
A late header from Kevin Davies grabbed Bolton a 2-2 draw with Leeds at the Reebok Stadium and eased the pressure on boss Owen Coyle.
Davies had headed Bolton into a 14th-minute lead but a Sam Byram header and Luciano Becchio's 50th-minute penalty put the visitors in command until Davies headed in a Martin Petrov cross 11 minutes from time.
Bottom-placed Peterborough continued their revival with a second consecutive away win, goals from George Boyd and Tyrone Barnett giving them a 2-0 victory at Barnsley.
And Gianfranco Zola's Watford also continued their recent improvement with a 2-1 win at Charlton despite having Fernando Forestieri sent off in first-half injury time after picking up a second yellow card for diving.
Tommie Hoban had put the Hornets in front and despite Ricardo Fuller's equaliser and being reduced to 10 men, Watford won it with a superb 70th-minute free-kick from Almen Abdi.
Charlie Austin's hat-trick for Burnley was not enough to take the points at Turf Moor as Sheffield Wednesday hit back three times to claim a 3-3 draw.
Austin's 22nd-minute opener was immediately cancelled out by Chris O'Grady, who did it again in the 64th minute to make it 2-2. Austin grabbed his third on 84, but there was still time for Michail Antonio to hit a dramatic long-range leveller two minutes later.
Bristol City and Millwall shared the points in a 1-1 draw at Ashton Gate. Steven Davies put the home side in front and Darius Henderson equalised with a 38th-minute header.