Arjen Robben öppnade poäng för mästarna när han borrade hem efter gott arbete på vingen från Franck Ribery.
David Alaba gjorde det 2-0 i första halv skada tid när han rullade in en fri-kick in.
Max Kruse drog tillbaka en när han skakade av Alaba innan han avslutade, men den 15: e-placerade värdar kunde inte utjämna.
Bayern är fortfarande tre punkter över RB Leipzig, som slog Hoffenheim 2-1.
Matchändar, SV Werder Bremen 1, FC Bayern München 2.
Andra halvlek, SV Werder Bremen 1, FC Bayern München 2.
Försök missade. Thomas Delaney (SV Werder Bremen) höger fotade skott från utsidan lådan är hög och bred till höger.
Kingsley Coman (FC Bayern München) visas det gula kortet för en dålig foul.
Foul av Kingsley Coman (FC Bayern München).
Florian Kainz (SV Werder Bremen) vinner en frispark i defensiva halvan.
Kingsley Coman (FC Bayern München) vinner en frispark på högerkanten.
Foul av Zlatko Junuzovic (SV Werder Bremen).
Försöket räddades. Joshua Kimmich (FC Bayern München) höger fotade skott från vänster sida av lådan sparas i nedre vänstra hörnet. Hjälpt av Renato Sanches.
Hörnet, FC Bayern München. Förföljd av Fin Bartels.
Maximilian Eggestein (SV Werder Bremen) visas det gula kortet för en dålig foul.
Kingsley Coman (FC Bayern München) vinner en frispark i anfallshalvan.
Foul av Maximilian Eggestein (SV Werder Bremen).
Foul av Douglas Costa (FC Bayern München).
Fin Bartels (SV Werder Bremen) vinner en frispark på högerkanten.
Offside, SV Werder Bremen. Felix Wiedwald försöker en genom boll, men Lamine Sané fångas offside.
Foul av Kingsley Coman (FC Bayern München).
Florian Kainz (SV Werder Bremen) vinner en frispark i defensiva halvan.
Försök missade. Douglas Costa (FC Bayern München) vänster fotade skott från utsidan lådan är hög och bred till vänster. Hjälpt av Xabi Alonso efter en snabb paus.
Foul av Kingsley Coman (FC Bayern München).
Niklas Moisander (SV Werder Bremen) vinner en frispark i defensiva halvan.
Ersättning, SV Werder Bremen. Florian Kainz ersätter Santiago García.
Försök missade. Serge Gnabry (SV Werder Bremen) höger fotade skott från en svår vinkel och lång räckvidd på höger missar till vänster. Hjälpt av Fin Bartels.
Foul av Renato Sanches (FC Bayern München).
Zlatko Junuzovic (SV Werder Bremen) vinner en frispark på högerkanten.
Ersättning, FC Bayern München. Douglas Costa ersätter Franck Ribery.
Foul av Xabi Alonso (FC Bayern München).
Santiago García (SV Werder Bremen) vinner en frispark i anfallshalvan.
Offside, SV Werder Bremen. Niklas Moisander försöker en genom boll, men Serge Gnabry fångas offside.
Zlatko Junuzovic (SV Werder Bremen) visas det gula kortet för en dålig foul.
Kingsley Coman (FC Bayern München) vinner en frispark på högerkanten.
Foul av Zlatko Junuzovic (SV Werder Bremen).
Santiago García (SV Werder Bremen) visas det gula kortet för en dålig foul.
Joshua Kimmich (FC Bayern München) vinner en frispark i defensiva halvan.
Foul av Santiago García (SV Werder Bremen).
Försök blockerat. Joshua Kimmich (FC Bayern München) huvudet från höger sida av rutan är blockerad. Hjälpt av Franck Ribery med ett kors.
Ersättning, SV Werder Bremen. Fin Bartels ersätter Robert Bauer.
Hörnet, FC Bayern München. Förföljd av Niklas Moisander.
Försök missade. Max Kruse (SV Werder Bremen) vänster fotade skott från vänster sida av lådan är nära, men missar övre vänstra hörnet. Hjälpt av Maximilian Eggestein med ett nyckelkort.
Ersättning, FC Bayern München. Kingsley Coman ersätter Arjen Robben.
Bayern München förblir tre punkter tydliga på toppen av Bundesliga efter att ha slagit Werder Bremen.