Marco Reus struck a late winner as Borussia Dortmund closed the gap on Bundesliga leaders Bayern Munich to a point with a 2-1 victory over VfB Stuttgart.