The Canaries, who had to play for over an hour with 10 men after Lewis Grabban was sent off for violent conduct, looked to be heading back into the top two after Gary Hooper’s moment of brilliance had put them ahead.
But Jordan Bowery’s 86th-minute header earned the Millers a vital point which keeps them out of the bottom three after Millwall’s late capitulation in their 3-3 draw against Derby.
It had been no more than Steve Evans’ men had deserved as they put in a spirited performance following Friday’s news that they had been deducted three points by the Football League for fielding an ineligible player.
They will be safe if they beat Reading in their game in hand on Tuesday night while Norwich could be condemned to the play-offs if Bournemouth beat Bolton on Monday night.
Rotherham, fired up by the points docking, started brightly but it was Norwich who initially looked the more dangerous and had two good efforts in the opening quarter.
First Nathan Redmond tested Emi Martinez’s handling with a fierce drive from 20 yards before Grabban dragged wide with a shot from 16 yards.
But Grabban’s next action was costly for the Canaries as in the 26th minute he was shown a straight red card after appearing to punch Millers skipper Craig Morgan in the abdomen.
That gave the hosts an incentive to push on and Danny Ward missed a fine chance to put them ahead when he drilled wide from the edge of the area after being teed up by Matt Derbyshire.
The Millers continued to press but could not find a way through as Ben Pringle could not make sufficient contact at the far post while Kari Arnason glanced a header wide from a corner.
It was more of the same immediately after the restart as Ward missed another gilt-edged chance when he volleyed wide after John Ruddy’s punch had fallen to him.
But Norwich produced the outstanding moment of the game just before the hour as they stole into the lead.
After a home attack had broken down, Nathan Redmond surged forward and fed Hooper who cut inside and hit a sumptuous volley into the top corner.
It was a goal fit enough to win any game, though the Millers had more than enough chances to earn at least a point.
Lee Frecklington forced a fine save from Ruddy from six yards before the golden chance came in the 78th minute when Derbyshire unbelievably hit wide from six yards when the goal was at his mercy.
The Millers continued to press, with Derbyshire’s looping header hitting the bar, before they finally found a way through with four minutes to go.
Adam Hammill beavered his way into the box and stood the ball up for Bowery to head home.
It was a grandstand finish with both sides desperate for the winner, but an enthralling contest ended all-square.