Dortmund's Dutch forward Donyell Malen scored his first Bundesliga goal in the 56th minute but Stuttgart levelled seven minutes later before Reus snatched the winner.
The result gave coach Marco Rose a club record with seven home wins from seven home league matches since taking over this season.
Dortmund move up to 27 points from 12 games, one behind Bayern, who slumped to a 2-1 loss at Augsburg on Friday.
Stuttgart were compact from the start and Dortmund struggled to carve out many clear chances, though Reus and Malen did come close.
Malen, under pressure to deliver in the Bundesliga after joining for €30 million ($33.86 million) from PSV Eindhoven this season, put the hosts in the driving seat with a deflected effort but it only lasted seven minutes.
Stuttgart quickly bounced back, with Roberto Massimo latching onto a through ball, shaking off two markers and beating Kobel for the equaliser.
The hosts, pushing forward for the winner, struck on a quick break, with Reus launching the move and then finishing it from close range on the rebound after Stuttgart keeper Florian Mueller had stopped Thorgan Hazard's shot.