Andre Silva gave fourth-placed Frankfurt a ninth-minute lead with his 19th league goal of the season.
Only Bayern's Robert Lewandowski, with 26 goals, has had a more prolific season.
Bremen, which started the match in 12th place after going three games without a win, levelled in the 47th minute through Czech star Theodor Gebre Selassie although the goal needed to be cleared by VAR (video assistant referee).
Rising American star Josh Sargent sealed the three points just after the hour mark.
Despite the defeat, Frankfurt remains fourth and in the UEFA Champions League spots, but it is now seven points behind leader Bayern, which has a game in hand.
Eintracht has a five-point cushion, however, over Bayer Leverkusen in fifth place.
Before the match, Frankfurt players lined up and donned shirts bearing the pictures and names of the 11 people killed in a racist shooting spree in nearby Hanau in February 2020.