Striker Lucas Barrios came off the bench to score his first goal of the season eight minutes from time after Dortmund captain Sebastian Kehl had put his team ahead just after the break.
The three points mean Dortmund leap-frog Bayern Munich into the top spot, but the Bavarians can regain first place if they win at Hamburg on Saturday night and third-placed Schalke can also draw level on 43 points if they win at Mainz.
This is the first time since the end of November that Dortmund have topped the standings, and in bitterly cold conditions they ground out a result against mid-table Nuremberg, having dominated their hosts.
Dortmund coach Jurgen Klopp was forced into an early change after just 22 minutes as midfielder Sven Bender was injured while challenging for the ball. He was replaced by teenager Moritz Leitner.
The 19-year-old started the move that led to the opening goal, with defender Lukasz Piszczek providing the final pass for Kehl to slot home on 48 minutes.
Having taken the lead, Klopp’s youthful team asserted their control in a manner that belied the absence of playmaker Mario Götze, who is out for up to two months with a groin injury.
With 20 minutes left, Klopp brought Barrios off the bench for Poland’s Robert Lewandowski and the Paraguay centre-forward showed his finishing prowess to prod home a rebound from Shinji Kagawa’s shot for Dortmund’s second.
Frustrated after losing his place in Klopp’s first team to Lewandowski, Barrios had publicly stated he wanted to leave Dortmund during January’s transfer window.
Having scored 16 goals in 32 games last season as Dortmund won the Bundesliga by seven points, Barrios had failed to hit the target in the first half of the current campaign.