Charlton closed the gap on League One leaders Leeds after a 5-1 win over MK Dons, while Colchester climb to third after a 2-2 draw with Exeter.
Paul Ince's third-placed side took the lead through Aaron Wilbraham's 10th-minute 25-yard volley but David Mooney fired home an equaliser three minutes later and Nicky Bailey's header put the Addicks ahead midway through the half.
Lloyd Sam, Sam Sodje and Deon Burton made sure of the points and, with Leeds' match being postponed due to international commitments, Charlton moved to within four points of the top.
Colchester overtook the Dons by drawing 2-2 at home to Exeter.
They fell behind to Stuart Fleetwood's sixth-minute goal but Clive Platt equalised just before the interval.
There was still time left in the half for Ryan Harley to put the visitors ahead again only for Platt to level for a second time after the break.
Norwich's Wesley Hoolahan and Gary Doherty scored the goals which beat Tranmere 2-0 at Carrow Road, a result which lifted the Canaries up to fifth.
Huddersfield moved into the top six with a 6-0 thrashing of bottom side Wycombe to make it four successive victories.
Peter Clarke hit two with Gary Roberts, Anthony Pilkington, Theo Robinson and a Michael Duberry own goal completing the scoring.
Millwall needed an 89th-minute equaliser from substitute James Henry to salvage a point at Brentford.
The hosts' John Bostock scored twice either side of Paul Robinson's 15th-minute effort before Henry struck late on.
Similarly, Chris Lines scored in the 90th minute as Bristol Rovers came from behind twice to beat Carlisle 3-2.
Jo Kuffour and Jeff Hughes had earlier cancelled out goals from Ian Harte and Richard Keogh.
Strikes from Matthew Richards and Darren Byfield either side of half-time gave Walsall a 2-0 victory at home to Stockport while Adam Boyd scored the only goal - in the 81st minute - as Hartlepool beat Leyton Orient at home.
Dean Bowditch's 76th-minute effort was enough to give Yeovil victory over Southend, while Gillingham beat Oldham by the same scoreline thanks to Curtis Weston's second-half penalty.