Arjen Robben opened the scoring in the 25th minute and Javi Martinez made it 2-0 moments later.
Sebastian Prodl was red-carded in the 44th minute before fellow Bremen defender Theo Gebre Selassie scored an own-goal after 49 minutes. Gomez increased the lead to 4-0 in the 51st minute.
Kevin de Bruyne pulled a goal back for Bremen in the 58th minute, but Franck Ribery joined in with the scoring in the 86th minute before Gomez netted again in the final minute.
Bayern increased their lead to 18 points over Borussia Dortmund with their sixth straight victory in what was coach Jupp Heynckes' 1,000th Bundesliga match as coach and player.
Bremen remain on 28 points after their second straight loss.
Heynckes made six changes to his line-up following the Champions League win over Arsenal, with Robben and Gomez starting.
Bayern had the first chance after 20 minutes but Bremen goalkeeper Sebastian Mielitz made a fine save from Robben.
Bayern went ahead 1-0 five minutes later with an attack from the right, Philipp Lahm crossing into the box where a charging Robben poked home from five yards.
The lead doubled after 29 minutes as Robben sent a free-kick into the box and Martinez headed home.
Bremen went a man down a minute before the break as Prodl was sent off for a professional foul on Gomez.
Bayern made it 3-0 thanks to an own-goal early in the second half when Gebre Selassie's attempted clearance ended in Mielitz's net.
Two minutes later it was four as Ribery looped a pass to Gomez, who passed the ball into the empty goal.
Bremen pulled a goal back in the 58th minute as Dante's clearance only went to Aleksandar Ignjovski, who passed to De Bruyne and the Belgian did the rest.
Ribery made it five in the 86th minute, latching on to Lahm's fine looping pass before beating Mielitz, while Gomez hit Bayern's sixth in the 89th minute.