Robbie Kruse put Dusseldorf in control of the game with a brace before Christian Gentner brought Stuttgart back into the running.
Oliver Fink then sealed victory for Fortuna, who edge up to within a point of their opponents, who were unable to respond to coach Bruno Labbadia's decision to sign a contract extension during the week.
Fortuna started as they meant to go on, looking hungry after losing their first two matches of the new year.
Robert Tesche almost gave them a flying start, but his shot hit the post and went across the face of goal in the eighth minute.
Just two minutes later, Tesche set up Kruse to put Fortuna in front with a slight deflection helping the ball through to the Australian forward, who held his nerve to beat Sven Ulreich.
Kruse showed even more coolness to beat Ulreich for as second time in the 37th minute to double the home team's advantage.
Ken Ilso was the provider this time with a perfect pass which needed no deflection to invite Kruse to beat Ulreich with a shot inside the near post when the Stuttgart goalkeeper guessed he would go the other way.
Labbadia was quite clearly unhappy with what he had seen in the first half and sent Federico Macheda and Ibrahima Traore on at the start of the second.
The move appeared to work with the latter racing down the left and sending in a cross to the far post for Gentner to bring Stuttgart back into the game after an hour.
But Fink ended their hopes in the 76th minute, beating Ulreich with a shot which the goalkeeper probably could have done better with, but Fortuna were not complaining as they won for the first time in 2013.