Mario Vrancic struck a later winner from the penalty spot as City made it four successive wins in the Championship.
In a tight match, City created the better chances and were given their reward for never giving up. Vrancic was the hero with a second winner in three league matches.
Daniel Farke named an unchanged starting line-up for the third successive League match, with Emi Buendia and Christoph Zimmermann the only starters from Tuesday’s Carabao Cup win over Wycombe Wanderers.
Teemu Pukki got the match started, with City attacking the Barclay in the first half. Wigan, fifth in the table ahead of kick-off, were brighter in the opening 10 minutes, pinning City back in their own half without carving out any opportunities from open play. Their first chance came from a corner, Cedric Kipre nodding well wide from a Lee Evans delivery.
Norwich’s passing was uncharacteristically sloppy as they looked to move the ball quickly on the counter-attack, but it was the visitors who started the game more comfortable on the ball.
City started to find their rhythm around the 20-minutee mark, and almost got their rewards when Marco Stiepermann cut in from the right and found an angle to shoot powerfully with his left foot, but Christian Walton did well to push the effort over the bar.
There was huge controversy on 22 minutes when Teemu Pukki latched on to a weak backpass and, as he was about to pull the trigger with only the keeper to beat, went down under a challenge from behind from Chey Dunkley. To the crowd’s astonishment, the referee waved play on.
Moments later Max Aarons went into the book for a push on Nick Powell. The free-kick was blocked and deflected to Powell eight yards out, but his weak effort was blocked.
After those moments of controversy the game became scrappier, with both sides looking to assert their dominance in midfield. Norwich’s press got sharper, with Wigan unable to move the ball around in City’s half like they did in the opening 15 minutes.
There was more great work from Stiepermann in the 37th minute, again chasing a lost cause and beating his man on the right, before teeing up Emi Buendia, whose goal-bound effort was blocked. It was a sign that Norwich were finishing the half far stronger than the visitors, who started to go longer due to the Canaries’ press.
Just before half-time Josh Windass went into the book for a late trip on Moritz Leitner in front of the Wigan dugout.
That was the last action of a half in which City started slowly but ended on top, without creating too many real clear-cut chances – other than the huge penalty appeal.
Norwich kept the pressure up at the start of the second half, with Stiepermann’s curling effort from 18 yards well saved low by Walton before Pukki’s drive from the edge of the area was blocked and looped over the bar.
Wigan stepped it up after 10 minutes, enjoying a lengthy spell of possession, but City did well to keep the visitors finding a way into their area or getting a shot off. The closest they came was a long-range shot from Josh Windass, but it was well over Tim Krul’s bar.
The game swung again towards City, who created a half-chance for Alex Tettey, but his shot from just inside the area was driven wide.
Daniel Farke made his first changes on 64 minutes, with Mario Vrancic replacing Todd Cantwell and Louis Thompson coming on for Max Aarons. Buendia went to the left, with Vrancic on the right.
Moments later good running by Pukki on the left carved out an opportunity for Stiepermann but his shot was well blocked in the box.
Wigan made their first change with 23 minutes remaining, with Joe Garner replaced by Darron Gibson – and Powell shifted up top.
There was alarm for City in the 71st minute when Reece James’s free-kick from the right went through a crowd of players in front of Krul and behind at the far post.
Vrancic then played a lovely clipped, central ball through to Stierpermann, who was clean through but the ball didn’t bounce kindly and Dunkley got back to tackle as he was about to shoot.
With 15 minutes remaining Farke made his final change, with Jordan Rhodes replacing Buendia. Wigan also swapped Evans for Callum Connolly.
It was the lively Stiepermann who fired City up again, beating two men on the right before playing in Pukki, but his cut-back from the byline was cleared behind for a corner. A minute later the roles were reversed, with Pukki cutting back to Stiepermann, but his low shot was blocked.
With five minutes remaining Norwich were awarded a penalty. Stiepermann did brilliantly to hold the ball up in the box before once again linking with Pukki, and he was dragged down by Connolly. Vrancic stepped up and calmly sent Walton the wrong way to give Norwich the lead!
City saw out the final stages with ease to keep the brilliant run going, with five successive wins in all competitions.