Norwich City have reclaimed top spot in the Championship table thanks to a third win on the spin, mixing their quality and determination to emerge victorious from a tough battle with lowly Millwall.

Marco Stiepermann had fired the Canaries ahead with his sixth goal of the season but the hosts equalised just before the break when Shaun Williams headed in after a corner.

However, Christoph Zimmermann’s thumping header and Teemu Pukki’s 25th goal of the season demonstrated City’s character yet again to win an extremely hard fought encounter.

City boss Daniel Farke stuck with the team which beat Bristol City 3-2 at Carrow Road last weekend but Alex Tettey replaced the injured Todd Cantwell on the bench, with Aston Oxborough coming in as back-up keeper to balance out the necessary homegrown quota.

The Den was bouncing as the first half got under way, as the hosts continued to smash long balls forward and threaten at set-pieces.

Ben Godfrey cleared a Jake Cooper header off the line from a Murray Wallace corner in just the fourth minute – but City saw out the storm and claimed the lead in the 16th minute.

Onel Hernandez exchanged a nice one-two with Emi Buendia but his shot was saved by Jordan Archer, only to rebound kindly to Stiepermann, who drilled the dropping shot into the net for 1-0.

Eastern Daily Press: Teemu Pukki, left, and Max Aarons celebrate with more than 3,000 away fans at The Den after the striker had put Norwich City 3-1 up against Millwall. Picture: Paul Chesterton/Focus ImagesTeemu Pukki, left, and Max Aarons celebrate with more than 3,000 away fans at The Den after the striker had put Norwich City 3-1 up against Millwall. Picture: Paul Chesterton/Focus Images (Image: Paul Chesterton)

All seemed to be going well for the visitors – with the 3,200 travelling fans also celebrating Nelson Oliveira putting Reading ahead at Ipswich – but City couldn’t press home their advantage.

Just before the half-hour Pukki couldn’t quite stretch enough to head in a fine Stiepermann cross from the left, as the home crowd started to show their frustrations.

James Meredith and Ben Thompson were both booked for poor tackles on Max Aarons and Trybull respectively, but the Lions rallied and Buendia twice tracked back to make important tackles.

The second saw the Argentine set Pukki clear on the left but Archer won the first of two foot races with the Finn in quick succession.

Yet City’s susceptibility at corners reared its ugly head again in the 45th minute, when Shane Ferguson played a set-piece in low from the left, former City striker Steve Morison flicked on with a neat back-heel and midfielder Williams headed in off the bar to level the score on the brink of half-time.

The hosts again went as direct as they could and kept the pressure on City but a succession of crosses and corners were headed clear or dealt with by Tim Krul.

Norwich gave the Lions a taste of their own medicine to reclaim the lead in the 68th minute though, when Zimmermann rose at the near post to power home a Buendia corner from the right with his head to claim a 2-1 lead.

Stiepermann missed a golden chance to wrap the win up in the 75th minute, getting a header all wrong as he met an Aarons cross from the right, sending the ball looping upwards. Pukki kept the chance alive but Buendia could only nod a header onto the roof of the net.

It was that man Pukki who did the business again though, with his 24th league goal of the campaign, sublimely controlling Buendia’s brilliant through-ball to create space and then firing across Archer into the top-left corner for 3-1.

Millwall gave it one last push with five minutes remaining and Zimmermann denied a Morison shot on the line, before Krul denied Mahlon Romeo with a vital boot at his near post and Aiden O’Brien fired wide in amongst bodies strewn around the Norwich box.

Krul made another important parry from O’Brien late on as City started closing out the game with substitutions to break up play – and reclaim top spot in the Championship table.

They move two points clear of second-placed Leeds, who won 4-0 at home against West Brom on Friday night, and five ahead of Sheffield United – who go to Steve Bruce’s Sheffield Wednesday for the Steel City Derby at Hillsborough on Monday night.

Meanwhile, Oliveira’s goal proved crucial for Reading at Portman Road, as Reading won 2-1 thanks to a late goal from Mo Barrow, to deal Ipswich a major blow in their relegation battle.

The Canaries return to action on Friday night, for a televised Carrow Road clash with mid-table Swansea.

NORWICH: Krul; Aarons, Zimmermann (C), Godfrey, Lewis (Klose 88); Trybull, McLean; Buendia (Leitner 84), Stiepermann, Hernandez (Vrancic 87); Pukki. Unused subs: Oxborough (GK), Hanley, Tettey, Rhodes

Booked: None

Goals: Stiepermann (16), Zimmermann (69), Pukki (78)

MILLWALL: Archer; Romeo, Hutchinson, Cooper, Meredith (O’Brien 73); Wallace, Thompson, Williams (Elliott 83), Ferguson; Gregory, Morison (C). Unused subs: Martin (GK), Onyedinma, Pearce, Tunnicliffe, Leonard

Booked: Meredith (foul on Aarons, 32), Thompson (foul on Trybull, 39)

Goals: Williams (45)

REFEREE: David Webb (Lancashire)

ATTENDANCE: 16,478 (3,240 away)

• Follow all the reaction and analysis from The Den in our Matchday Live blog at pinkun.com/live

• Make sure to download the PinkUn app for exclusive insight and analysis from our Norwich City correspondents, available for free in your mobile device’s app store