Bayern Munich saw their winless streak against Borussia Dortmund extended to five matches with a 1-1 draw as their lead at the top of the Bundesliga was trimmed to eight points.
• Blog: Weidenfeller's heroics save point
When the deadlock was broken midway through the second period it was the home fans who were celebrating. Toni Kroos, who collected a pass from Thomas Muller, danced past Neven Subotic and Hummels and blasted home a low left-footed shot.
The lead lasted only seven minutes, though. Reus' corner from the right was headed away by Mario Mandzukic but only to Goetze, who had space and time to chest the ball down and strike into the bottom-right corner.
Bayern coach Jupp Heynckes had been forced to make a substitution after 37 minutes as Jerome Boateng replaced fellow Germany defender Holger Badstuber, who suffered a serious right knee injury.
Bayer Leverkusen remained the closest challengers to Bayern after Stefan Kiessling's first-half goal secured a 1-0 win against Nurnberg.
Kiessling scored the only goal of the match in the 37th minute as Leverkusen picked up their fourth win in a row - and sixth in their last seven games - to move onto 30 points. Nurnberg, who had picked up points in four of their last five matches, remained in the lower echelons on 16 points.
Andre Schurrle fed Kiessling, who turned and then struck his shot past Nurnberg keeper Raphael Schafer.
Ten-man Mainz moved into the top six, dislodging opponents Hannover with a spirited 2-1 win at the Coface Arena.
Thomas Tuchel's men took the lead through Nicolai Muller early on, but Hannover levelled before half time through Christian Schulz.
The home team were reduced to 10 men just after the interval when goalkeeper Christian Wetklo was given his marching orders, but they still managed to find a winner in the 89th minute through Adam Szalai.
Schalke's dismal recent form continued as they were held to a 1-1 draw at home by Borussia Monchengladbach.
Igor de Camargo put the Foals in front and Schalke were only able to snatch a point late on thanks to a goal from Julian Draxler.
Ten-man Stuttgart secured a hard-fought 1-0 victory at Greuther Furth thanks to Shinji Okazaki's goal just before the break.
The Japanese international was first to the rebound after Vedad Ibisevic's penalty was blocked by the Furth keeper Wolfgang Hesl. Stuttgart were reduced to 10 men in the 53rd minute as Serdar Tasci saw red. The win means Stuttgart have collected three wins in their last four games to move to 22 points. Furth meanwhile prop up the table and have yet to win at home this season in the Bundesliga.
Augsburg moved off the bottom with a 1-1 draw against Freiburg.
The promoted side took the lead in the ninth minute through Tobias Werner, only for Jonathan Schmid to equalise in the 28th minute for ninth-placed Freiburg.