Mainz dealt blow in quest for Europe
Adam Szalai had the chance to open the scoring for Mainz in the 28th minute, after Javier Pinola bundled Nicolai Mueller over in the penalty area, but the Hungarian striker fired his spot kick wide to the left.
Nurnberg defender Per Nilsson broke the deadlock in the 54th, when he met Hiroshi Kiyotake's in-swinging free kick to head inside the far post.
Nicolai Mueller equalized six minutes later with a chip over the outrushing goalkeeper.
But Nilsson scored his second in the 69th when he scrambled the ball into the net from Hanno Balitsch's light touch to Kiyotake's corner.
Mainz, which dropped to eighth, had most of the possession and 11 shots on goal compared to the home side's six, but Nurnberg held on to preserve an unbeaten run at home going back to Sept. 29.
''Luck isn't smiling on us,'' said Mainz coach Thomas Tuchel. ''We weren't rewarded for our efforts.''
''We had a lot of technical errors and we didn't put them under pressure,'' Hannover coach Mirko Slomka said. ''We have to present ourselves differently for such a home game.''
Stuttgart striker Shinji Okazaki had the best chance of the game but shot straight at Ron-Robert Zieler with only the goalkeeper to beat in the 52nd.
Sergio da Silva Pinto hit the side-netting at the other end shortly afterward, and Didier Ya Konan shot wide late on for the home side.
''You didn't have the feeling anyone would win,'' said Stuttgart coach Bruno Labbadia. ''The three points were there for us. We had their attack under control but we needed to be more decisive up front.''
The result leaves Hannover ninth, four points off Eintracht Frankfurt in the last European qualification place, while Stuttgart remains 13th.
Bayern Munich wrapped up the title with a record six games to spare by winning 1-0 at Frankfurt on Saturday.
Bastian Schweinsteiger scored for Bayern's 11th straight win - also a record within one Bundesliga season.