Robert Earnshaw grabbed a brace of late goals to help Cardiff come from behind to beat Crewe and stay top of the Second Division.

Lennie Lawrence's side had trailed to a goal from Rob Hulse in the 48th minute but Wales international Earnshaw scored in the 84th and 86th minutes to spark celebrations at Ninian Park.

It was just as well Cardiff came back as Queens Park Rangers and Wigan continued to keep up the pressure.

QPR beat Colchester 2-0 at Loftus Road thanks to goals in either half from Karl Connolly and Kevin Gallen, while Barnsley old boy Andy Liddell set Wigan on the way to a 3-1 win against his former club.

He opened the scoring at Oakwell in the second minute for his seventh goal of the season and Matt Jackson added a second nine minutes later.

Scott Green made it 3-0 with 65 minutes played and though Kevin Betsy's goal a minute later momentarily looked like making a game of it, the score remained the same.

It was an unhappy return to Oldham for former boss Mick Wadsworth as his Huddersfield team were hammered 4-0 at Boundary Park.

Former Terrier Clyde Wijnhard scored twice for Oldham with David Eyres and Lourenco da Silva their other scorers as Iain Dowie's side moved third above Wigan on goal difference.

Huddersfield's defeat left them second from bottom as Peterborough and Notts County both recorded convincing wins.

Peterborough thrashed Brentford 5-1 at London Road, Simon Rea getting them off to the perfect start with a goal in the first minute.

Jimmy Bullard doubled the lead from the penalty spot (48), Bradley Allen tucked in a third (68) and David Farrell made it four (77).

Rowan Vine scored an 86th-minute consolation for the visitors but Andy Clarke restored the four-goal victory margin in the last minute.

Notts County, still to win at home this season, won 4-1 at Cheltenham thanks to two goals apiece from Mark Stallard and Danny Allsopp, Julian Alsop scoring the Gloucestershire side's only goal.

Mansfield continue to struggle at the very bottom, losing 2-0 at Northampton who won thanks to a third-minute Marco Gabbiadini penalty and an 80th-minute strike by Paul Trollope.

Chesterfield moved up three places to fifth with a 1-0 win at home to Blackpool with a 49th-minute goal from David Reeves.

Bristol City climbed to sixth from eighth as they beat Port Vale 3-2 away from home.

Peter Beadle (18) and Scott Murray (40) put the Robins in command at half-time but the Valiants appeared to have earned a point when Billy Paynter pulled one back on the hour and Michael Cummins levelled the scores in the 89th minute.

However, City were made of sterner stuff and snatched the win when Leroy Lita found the net in the last minute.

Plymouth were beaten 2-1 at Wycombe with Darren Currie netting both for the home side either side of David Friio's equaliser.