After a goalless first half, Gotze came off the bench to score the opener in the 66th minute of Saturday's much-hyped fixture with a neat finish before Arjen Robben and Thomas Muller made sure of maximum points with strikes in the 85th and 87th minutes respectively.
The result sends Bayern four points clear of second-placed Bayer Leverkusen and seven ahead of Dortmund, while also extending their record unbeaten run in the league to 38.
Dortmund have now lost back-to-back league matches for the first time since September 2011.
Leverkusen kept up their pressure on Bayern by picking up a 1-0 victory at Hertha Berlin.
Stefan Kiessling netted the winner in the first half as Sami Hyypia's men recorded their first victory over the capital club since 2007, pulling them three points clear of third-placed Dortmund.
Wolfsburg lost ground in the chase for the UEFA Champions League spots as they were held to a 1-1 draw by lowly Nuremberg.
Maximilian Arnold gave Wolfsburg the lead in the 39th minute before Daniel Ginczek equalised after 72 minutes for the relegation strugglers, who climb off the bottom of the league on goal difference.
Schalke remain fifth after playing out a thrilling 3-3 draw at Eintracht Frankfurt.
The visitors went two up early on at the Commerzbank-Arena before the hosts scored three goals in 12 second-half minutes to go 3-2 ahead.
But Benedikt Howedes found the net four minutes from time to salvage a point for Schalke, who are now four points adrift of a Champions League berth.
Elsewhere, Augsburg pulled three points clear of Hoffenheim with a 2-0 victory at the SGL Arena, while Freiburg picked up a valuable three points with a 1-0 away victory at Eintracht Braunschweig, leaving the hosts at the bottom of the Bundesliga.
Get the best features, fun and footballing frolics straight to your inbox every week.