Frankfurt stayed ninth on 13 points after suffering their second league defeat of the season, to go with two wins and seven draws, following a largely tepid performance.
Visiting goalkeeper Kevin Trapp kept a dominant home side at bay with a string of fine saves before Frankfurt took a 63rd-minute lead against the run of play.
Trapp, who had denied Weghorst with a terrific double save in the 56th minute, was finally beaten by the towering striker's 77th-minute spot-kick awarded after Stefan Ilsanker handled the ball in the area.
With the match seemingly heading for a draw, Weghorst snatched an 88th-minute winner for Wolfsburg with a first-time shot on the turn into the far corner after taking a Xavier Schlager pass in his stride.
In Saturday's stand-out fixtures, Bayern visit sixth-placed Union Berlin, third-placed RB Leipzig are at home to Werder Bremen and Dortmund host VfB Stuttgart. Second-placed Bayer Leverkusen are at home to Hoffenheim on Sunday.