Bremen parted company with Schaaf after 14 years in midweek following a run of 12 games without a victory, but it got no better today as they finished their Bundesliga on a familiar note.
Kevin De Bruyne gave them hope with a 37th-minute lead, but Per Nilsson equalised just after the hour mark and Sebastian Polter made it 2-1 for the hosts after 82 minutes.
Tomas Pekhart doubled Nuremberg's advantage two minutes from time before De Bruyne set up a tense finale in the closing stages.
Nuremberg took 10th place in the final table with 44 points.
Bremen had the first chance in the fifth minute but Aleksandar Ignjovski's blast from 19 yards sailed just wide.
The visitors went close again in the 32nd minute but Nils Petersen's header off a Zlatko Junuzovic cross went just over the bar from eight yards out.
Bremen grabbed the lead in the 37th minute with Junuzovic looping a ball into space where De Bruyne struck over Nuremberg keeper Raphael Schafer to make it 1-0.
Nuremberg equalised after 61 minutes, however, as Timm Klose's header off a corner struck the right post but Nilsson pounced on the rebound.
De Bruyne and Joseph Akpala both found only the side netting for Bremen before the hosts took the lead in the 81st minute with Polter heading in a Robert Mak corner kick from the right side.
Nuremberg made it 3-1 in the 88th minute with Mak racing to the goal-line and crossing to Pekhart, who easily hit home the winner.
De Bruyne finished the scoring with a consolation goal in the 89th minute as the Belgian struck a Petersen pass into the far corner.