The visitors came into this game having failed to win three of their last four league matches and the fans will be delighted with the way their side bounced back.
Dortmund are now up to 5th in the table, seven points behind Frankfurt and they will be hoping to finish in the top four by the end of the season.
Kalajdzic scored the opening goal of the game for Stuttgart on the 17th minute and the home side seemed like they were on their way to three points.
However, Dortmund fought back in the second half with goals from Jude Bellingham and Marco Reus within seven minutes of the second half.
Stuttgart scored the equalizer on the 78th minute through Didavi but Knauff bagged a well-deserved winner two minutes later.
Dortmund were lacking in intensity and cohesion in the first half but there was a significant change in their approach and after the break. The away side played with a sense of urgency in the second half and they were rewarded for their intensity and directness.
However, Dortmund will have to improve defensively if they want to finish in the top four of the season.
Despite their impressive comeback in the second half, Dortmund were vulnerable to counterattacks and Stuttgart could have easily scored more goals on another day.
The Dortmund fans will have a lot of positives to take away from this game apart from the three points. Star attacker Marco Reus ended his goal-scoring drought in the Bundesliga of just over 14 matches. Meanwhile youngster Jude Bellingham scored his first-ever Bundesliga goal in his 24th appearance for the club.