Daniel Farke’s side looked set to be leapfrogged by Leeds after a late Bolton fightback.
Mario Vrancic and Marco Stiepermann put the Canaries 2-0 up but Bolton, who are still winless in their last 11 league games, rallied through Sammy Ameobi and Mark Beevers’ 88th-minute equaliser to level at 2-2.
Ameobi was then sent off as the 90 minutes expired before Teemu Pukki struck the winner three minutes into stoppage time.
Leeds kept the gap at just one point after coming from behind to beat QPR 2-1. Nahki Wells opened the scoring for Steve McClaren’s team but Kemar Roofe struck either side of half-time – the second from the penalty spot – to earn Leeds victory.
Wigan’s Kal Naismith saw red after 15 minutes and it did not take long for the Rams to take advantage, as Jack Marriott guided in Jayden Bogle’s cross six minutes later for what proved the only goal of the game.
Middlesbrough lost ground on the leaders after being held 1-1 at home to Blackburn. Boro were up against it after Muhamed Besic was shown a straight red card after 21 minutes for hauling down Bradley Dack when he was through on goal. Charlie Mulgrew fired Rovers ahead from the resulting free-kick.
But Britt Assombalonga rescued Tony Pulis’ side a point with a 62nd-minute equaliser.
Ipswich remain rooted to the foot of the table after losing their fourth game in a row, going down 2-0 at Stoke. The hosts took the lead in first-half stoppage time as Sam Clucas slipped in Tom Ince, who fired past Dean Gerken.
Joe Allen made it two on the hour mark to extend Stoke’s unbeaten league run to eight games.
A scintillating first-half display was enough for Swansea to edge past Brentford 3-2 at Griffin Park. Graham Potter’s side were 3-0 up inside half-an-hour thanks to Wayne Routledge, a Chris Mepham own goal and Leroy Fer.
But Brentford fought back through Ollie Watkins and Said Benrahma to make it a tense finish for Swansea.
Sheffield Wednesday and Rotherham drew 2-2 in their Yorkshire derby at Hillsborough. Lucas Joao put Wednesday ahead just before half-time but Rotherham rallied to lead through Michael Smith and Richie Towell.
Joao was on target again to secure Wednesday a point.
Millwall and Hull played out an entertaining 2-2 draw at the Den. Kamil Grosicki’s early opener was cancelled out by Lee Gregory, with Markus Henriksen equalising for Hull after Millwall went ahead in the second half through Aiden O’Brien.