The visitors threatened to escape with a point when a late Niklas Sule own goal levelled the match at 2-2, but in the final 15 minutes, Robert Lewandowski and Thomas Muller went on to complete braces to seal the points.
Bremen, who started the afternoon in 16th place in the table, took the game to Bayern in the opening stages, firing an early warning shot when Max Kruse's glancing header came back off the outside of the post.
The warning went unheeded and the away side took a surprise lead with 25 minutes on the clock as Maximilian Eggestein and Kruse combined to send Jerome Gondorf clean through on goal, allowing the forward to slide the ball between the legs of Bayern goalkeeper Sven Ulreich and into the net.
Falling behind buoyed the German champions and they were level four minutes before half time, their equaliser coming when Jerome Boateng crossed into the box from a deep position and Muller chested the ball down to unleash an unstoppable volley into the bottom corner.
Bayern remained on the front foot into the second half and took the lead for the first time in the match just after the hour, when Lewandowski met a James Rodriguez corner with a bullet header that made the net bulge.
Questionable defending led to the visitors' second, which came when Zlatko Junuzovic's corner was not dealt with, the ball eventually ending up in the Bayern net via a massive deflection off Sule to make it 2-2.
The parity lasted just two minutes as a blistering run from Muller saw him find space on the flank and deliver a cross into the penalty area, which Lewandowski headed into the net to put his side back in front.
Ulreich denied Bremen a second equaliser moments later, pulling off an acrobatic dive to tip Junuzovic's low, goal-bound effort around the post with his fingertips.
Bayern made the points safe in the 84th minute when James's ball over the top picked out Muller, allowing the Germany international to slot home from close range and join Lewandowski on a brace.
The win sees Bayern extend their lead at the top of the Bundesliga to 13 points, while what was only their second defeat in six sees Bremen remain in the relegation places.
BAYERN (4-3-3): Ulreich; Kimmich, Boateng, Sule, Bernat; James, Martinez (Vidal '58), Ribery; Robben (Coman '58), Lewandowski (Wagner '77), Muller
WERDER BREMEN (4-1-4-1): Pavlenka; Bauer (Selassie '45), Veljkovic, Moisander, Augustinsson; Bargfrede (Belfodil '80); Gondorf (Kainz '73), Junuzovic, Delaney, Eggestein; Kruse