Bundesliga Wrap: Bayer slip up at Bremen
Leverkusen have slowly fallen away since making a promising start to the season, and end the weekend sixth in the top flight.
Bremen were 2-0 up before the half-hour mark, with Davie Selke opening the scoring by slotting home a volley from a high cross played in by Fin Bartels.
Zlatko Junuzovic's curled free-kick doubled the hosts' advantage, although Hakan Calhanoglu headed in a reply shortly after Gonzalo Castro had hit the post.
That proved as much of a fightback as Leverkusen could muster, as Bremen went eighth in the Bundesliga.
In the day's other fixture, Augsburg missed a chance to go third as they threw away a two-goal advantage in a 2-2 draw with Eintracht Frankfurt.
Ragnar Klavan's close-range effort broke the deadlock in the seventh minute, before Raul Bobadilla turned in a free-kick at the back post 30 minutes later.
Frankfurt pulled one back by half-time through a Stefan Aigner header, and Alexander Meier ran on to a long punt forward to drill beyond goalkeeper Alex Manninger for a share of the spoils 20 minutes from time.