Bayern Munich bounced back from their midweek Manchester City defeat with a 3-1 win over Hamburg in the Bundesliga, while Borussia Dortmund suffered a UEFA Champions League hangover.
Bayern slumped to their first defeat since July on Tuesday when they were beaten 3-2 at home to City, but still went through as group winners to the Champions League's last 16.
Bayern surrendered their ten-match record Champions League winning run to City, but victory over Bert van Marwijk's Hamburg extended their record unbeaten run in the Bundesliga to 41 matches.
Despite starting with France winger Franck Ribery and left-back David Alaba on the bench, while captain Philipp Lahm and star midfielder Bastian Schweinsteiger are injured, Bayern still started with ten internationals.
Alaba's replacement Diego Contento was the only uncapped player in the Bayern side.
Mandzukic put the Bavarians ahead with his tenth goal of the season with 42 minutes gone when he headed home Rafinha's superbly volleyed cross after a long ball from Toni Kroos.
Gotze added the second when he hit the top left corner with 52 minutes on the clock before making way for Ribery.
Hamburg striker Pierre-Michel Lasogga scored Hamburg's consolation goal on 87 minutes when he crashed his shot past Munich goalkeeper Manuel Neuer.
Shaqiri came off the bench to add a third just before the final whistle to get Pep Guardiola's Bayern back to winning ways.
Dortmund fight back at Hoffenheim
Having needed a dramatic late goal to beat Marseille on Wednesday to confirm their Champions League progress, Dortmund had to fight back from two-goals down to draw 2-2 at Hoffenheim to hold onto third place.
Striker Sven Schipplock and right-winger Kevin Volland gave Hoffenheim a shock 2-0 lead before Dortmund's Pierre-Emerick Aubameyang gave Borussia hope when he hit his ninth goal of the season just before the break.
Poland right-back Lukasz Piszczek scored his first goal of the season to equalise when he stabbed home a rebound after a curling Nuri Sahin cross.
The point was enough for Dortmund to hold onto third place as they sit level on 32 points with fourth-placed Borussia Monchengladbach, who were held to a goalless draw at Mainz.
The victory keeps Wolfsburg fifth and closes the gap behind fourth-placed Monchengladbach to three points, while Stuttgart stay tenth.
Nuremberg keep the tag of being the only team in a major European league without a win when they drew 3-3 at Hanover as the hosts fought back with three goals in the final half an hour.
Senegal striker Mame Diouf scored Hanover's dramatic equaliser in the dying stages, with more than a hint of offside, to leave Nuremberg furious and second from bottom in the table.
Eintracht Braunschweig remained bolted to the bottom of the league when they went down 4-1 at Augsburg while on Friday, Werder Bremen crashed to a 3-2 defeat at Hertha Berlin, their fourth in five games.