Mark Hudson fired home a 57th minute winner to send Cardiff City to the top of the npower Championship with a 2-1 home win over Birmingham City, while previous leaders Brighton & Hove Albion 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.

Poyet's men needed a late equaliser to salvage a point in a 1-1 home draw with struggling Ipswich Town. 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 City, who handed Huddersfield Town their second consecutive home defeat with a 2-0 win.

Meanwhile, Wolverhampton Wanderers missed the chance to also leapfrog the Seagulls as they were undone by a late Wilfried Zaha brace for Crystal Palace at Molineux. Meanwhile, Ian Holloway's Blackpool rediscovered their form with a dramatic 3-2 win over Hull City at the KC Stadium.

A late header from Kevin Davies grabbed Bolton Wanderers a 2-2 draw with Leeds United 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 United 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 Athletic.

Charlie Austin's hat-trick for Burnley was not enough to take the points at Turf Moor as Sheffield Wednesday hit back three times, with Chris O'Grady bagging a brace and Michail Antonio hitting a late equaliser to claim a 3-3 draw.

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.