In a game of two penalties, Freddie Ladapo's third-minute strike put the Millers ahead, but he missed the chance to double the lead when he saw his penalty saved by Norwich keeper Tim Krul.
Rotherham captain Michael Ihiekwe turned Max Aarons' cross into his own net just after the hour mark, but despite Angus MacDonald's dismissal, Rotherham had looked set to share the spoils before Emi Buendia was tripped by substitute Florian Jozefzoon, the spot-kick converted by Jordan Hugill to secure all three points for Daniel Farke's side.
Whilst the result is harsh on Rotherham following an impressive display, they remain winless since opening day, whilst Norwich ended a run of two consecutive defeats.
Story of the game
Norwich's starting XI included five players who had been on international duty in midweek, and despite a bright start they were caught cold early on as Ladapo finished neatly to punish a poor clearance from Krul's poor clearance.
That goal seemed to spark Norwich into life, the Canaries working a host of good chances as Marco Steipermann and Adam Idah both forced good saves from the resolute Jamal Blackman. That work was almost undone when Idah hauled down Clark Robertson following a freekick 20 minutes in. But Krul - who is well-known for his penalty-saving exploits - redeemed himself for his earlier error, a strong left hand to Ladapo's spot kick keeping the visitors in the game.
Rotherham ended the half the stronger of the two teams, Mikel Miller spurning a golden opportunity when he headed over from six yards out, and the second half started in a similar vein as the hosts' high press restricted Norwich's attacking options.
Norwich did have the ball in the net after an hour, but Steipermann - who was impressive throughout - was correctly ruled offside after the German had tapped in Emi Buendia's delivery. Not to be deterred, Norwich were level eight minutes later. A venomous cross from Aarons, who had been subject to interest from FC Barcelona in the recent transfer window, from the right found the head of the unfortunate Ihiekwe, who could do nothing but turn the ball into his own net.
Things went bad to worse for the home side with 20 minutes remaining, when MacDonald was shown a straight red by referee David Webb for a horrible lunging challenge on Oliver Skipp. But to Rotherham's credit, and despite the introduction of a third Norwich striker in Teemu Pukki, the hosts fashioned genuine chances to win the game, with Robertson sending a shot wide with the goal to aim at. Matty Crooks also forced a good save from Krul from 10 yards out, as both sides searched for a winner. Norwich too had chances to steal victory, with Blackman making a fine double save to Pukki after Hugill's long range effort in the final 10 minutes.
But as the game seemed destined for a draw, Buendia reacted quickest to a loose ball in the box, drawing the foul from Jozefzoon. Hugill stepped up and sent Blackman the wrong way to secure a first win since opening day for Norwich, moving the Canaries to 11th in the table.
The talking points: Lapses of concentration cost home side
For Norwich, the win will come as a great relief, but they were made to work for it by an impressive Rotherham outfit. Farke will be encouraged by the display, despite missing first-team regulars in Pukki and Kenny McLean due to arriving late from international duty earlier this week.
There were periods where Norwich looked lacklustre, and at times rode their luck as Rotherham fashioned some good chances. But they stayed resolute and, with the last-minute winner, showed the desire and focus to make every second count – a hallmark of their promotion-winning campaign two seasons ago.
Rotherham meanwhile will wonder how they did not take at least a point from a game which they had control of for long periods. Although managed by a proud Norwich fan in Paul Warne, who watched the game from home due to self-isolation, he will be disappointed by both MacDonald’s red card – about which no one can have any complaints – and a loss of concentration in the dying moments, both of which have cost his side dearly.
However, he can take pride in his side’s display, which did show the Millers’ ability to compete with teams tipped for promotion. Performances like the one shown today, provided they can repeat it regularly, should reassure many in South Yorkshire that this season will not end with the disappointment of relegation which has seemingly cursed recent stints in the Championship.
Rotherham have a chance to bounce back from this disappointment on Tuesday night when they face Chris Hughton’s Nottingham Forest, in a game which both teams will be keen to win. Norwich meanwhile will look to continue winning ways when they take on Birmingham City at Carrow Road.
Player of the Match – Jamal Blackman
Although the scoreline may suggest otherwise, Blackman pulled off a string of fine saves throughout in the Rotherham goal, particularly in the first half where he denied Steipermann and Idah, the latter of which was a fierce 30-yard drive which the Chelsea loanee did well to push over.
The second half was no different, Blackman doing well to deny Hugill and Pukki in the closing stages. The 26-year old looked confident and composed throughout, and could do nothing about either of the Norwich goals in an otherwise impressive performance.
Rotherham United: Blackman, Harding, Ihiekwe (C), A MacDonald, Robertson, Crooks, S MacDonald (Wood, 73'); Barlaser, Wiles, Ladapo (Smith, 78'); Miller (Jozefzoon, 67')
Subs not used: Johansson, Hirst, Lindsay, Sadlier
Norwich City: Krul, Aarons, Hanley (C), Gibson, Quintilla, Rupp, Skipp (Vrancic, 80'); Buendia (McLean, 90'); Steipermann (Pukki, 80'); Idah, Hugill
Subs not used: McGovern, Tettey, Placheta, Martin
Referee: David Webb