Markus Rosenberg opened the scoring for Bremen in the 30th minute and thereafter the floodgates opened.

Ronaldo Naldo doubled the lead on the stroke of half-time before Mesut Ozil grabbed a third in the 64th minute.

Rosenberg scored his second three minutes later and two minutes after that, Claudio Pizarro inflicted further damage.

Substitute Tim Borowski pulled two goals back for Bayern (71 and 85) but it was too little, too late for the defending champions.

The win means Bremen leapfrog Bayern into fourth place because of better goal difference. Both teams have eight points.

Schalke moved to the top of the table with a 1-0 win over 10-man Eintracht Frankfurt, for whom Christian Chris was sent off in the 34th minute. Patrick Ochs' own goal in the 41st minute proved decisive.

Unbeaten Schalke are a point ahead of Hamburg, who visit Wolfsburg on Sunday.

Energie Cottbus are bottom of the league standings despite earning a point in a 1-1 draw at home to Bochum.

Dennis Sorensen put the hosts ahead in the 13th minute but Anthar Yahia equalised two minutes into the second half.

Arminia Bielefeld left it late to see off Cologne 2-0 and were kept at bay until the 74th minute when substitute Jonas Kamper broke the deadlock.

Artur Wichniarek made the points safe two minutes later.

The win moves Arminia out of the bottom three into 12th, while Cologne slip to 13th.

Hertha Berlin saw off Borussia Monchengladbach 1-0 courtesy of Gojko Kacar's 11th-minute effort.