MATCH REPORT: ROTHERHAM 1-1 CITYTEN-MAN City were denied all three points by Jordan Bowery's leveller four minutes from time as they drew 1-1 with Rotherham United at the New York Stadium.
Lewis Grabban was sent-off midway through the opening period but Gary Hooper's stunning strike edged the Canaries ahead in the second half.
Rotherham, fighting relegation from the Sky Bet Championship following Friday's points deduction, threw everything into getting an equaliser and Bowery's header earned them a point late in the day.
This result, along with Middlesbrough 4-3 defeat at Fulham, means Watford have been promoted to the Premier League, leaving just one space left for Boro, City and Bournemouth to fight for.
A win for the Cherries on Monday night against Bolton Wanderers will all but seal them top flight football, with a playoff campaign now looking increasingly likely for Alex Neil's troops.
This was a game where City will have been disappointed to have lost their advantage close to the final whistle, but a valiant display from Rotherham merited a share of the points.
Neil made three changes to the team that were defeated by Middlesbrough last Friday, with the most notable switch coming in defence as Ryan Bennett replaced Steven Whittaker, meaning captain Russell Martin reverted to right-back.
Alex Tettey and Cameron Jerome were the other two to miss out, which meant starts for Nathan Redmond and Grabban - the latter's first since the East Anglian derby at the beginning of March.
Rotherham stuck with the same eleven that earned them a point at Fulham in their last match ten days previously, although their three-point deduction - which was confirmed only on Friday - left them dangerously close to the relegation zone.
Norwich made a rapid start to the game, not allowing their hosts a second on the ball, but only Redmond gave Emi Martinez something to do with a mid-range effort.
The Millers got themselves back into the contest, with Russell Martin and Ryan Bennett having to be on hand to clear dangerous balls from Jack Hunt and Matt Derbyshire.
Grabban dragged a shot across Martinez's goal up the other end, but four minutes later the striker's game was over after an altercation with Craig Morgan.
The former Rotherham man was given his marching orders by referee Mark Brown, and Neil had to reshape his ten-man team for the remainder of this pivotal contest.
That involved introducing Hooper for Wes Hoolahan, just after Danny Ward had spurned the best opportunity of the half from Derbyshire's delivery.
John Ruddy saved comfortably from Ben Pringle, but the last chance of the half came via Martin Olsson, who surprised Martinez with a powerful drive from the angle.
HALF-TIME: Rotherham United 0-0 Norwich City
Five minutes into the second period from a Rotherham attack, the ball fell nicely for Ward - but he dragged his volley wide, a decent chance for Steve Evans' side.
City gradually began to take control, however, in front of a nervy home crowd, and they got the opener in stunning fashion on the hour-mark.
Hooper teed himself for a volley just outside the box, and connected sweetly, with the Canaries fans behind the goal seeing it loop beyond Martinez and into the corner.
It was an outstanding goal from the substitute and gave the depleted City a precious lead to defend for the remaining half hour.
On 68 minutes, Rotherham went desperately close to levelling proceedings when Lee Frecklington was left unmarked, but Ruddy was there to make a fine reaction stop.
Then, seven minutes later, Derbyshire spurned an even better chance - he had the goal at his mercy when substitute Jordan Bowery found him, but incredibly he steered his effort wide.
They remained the side on the offensive as the match approached its climax, and with four minutes left to play they forced home their equaliser.
Adam Hammill did well to cross in from the left, and waiting at the back post was Bowery, and although Ruddy got a hand to his header, he couldn't stop it from trickling over the line.
FULL-TIME: Rotherham United 1-1 Norwich City
GOALS: Millers: Jordan Bowery (86) - Canaries: Gary Hooper (60)
ROTHERHAM UNITED: Martinez, Hunt, Morgan (c), Broadfoot, Lafferty; Frecklington, Smallwood, Arnason, Pringle (Hammill 63); Ward (Bowery 69), Derbyshire. Subs not used: Collin (GK), Wood, Green, Wilson, Clarke-Harris.
NORWICH CITY: Ruddy; Martin (c), R Bennett, Bassong, Olsson; Dorrans, Howson, Johnson, Redmond (Jerome 77), Hoolahan (Hooper 33); Grabban. Subs not used: Rudd (GK), Cuellar, E Bennett, O'Neil, Odjidja-Ofoe.
REFEREE: Mr M Brown
ATTENDANCE: 11,498 (2,327)