By Graeme Bailey
Last Updated: 01/01/70 1:00am
Bayer climb into third place with the victory, which is Stuttgart's first home defeat of the new season - but their second loss in succession.
Carsten Ramelow put Bayer ahead after 26 minutes and Bulgarian Dimitar Berbatov doubled their advantage on the stroke of half time.
Prized asset Kevin Kuranyi (pictured) brought Stuttgart back into the game with his strike just before the hour - but Berbatov restored the two-goal margin just minutes later.
Zvonimir Soldo pulled another goal back for Stuttgart with 20 minutes remaining, but Bayer held on to seal victory.
Stuttgart have now gone five games without victory and their brilliant campaign so far looks to be faltering.
Fifth placed Bochum lost further ground on the top four as they were held 2-2 at Hannover.
The home side went ahead through Thomas Brdaric on 18 minutes, but Bochum levelled just after the break through Peter Madsen.
Julian De Guzman put Hannover ahead once again just after the hour mark, but Vahid Hashemian rescued a share of the spoils with just 15 minutes remaining.
Bochum stayed in fifth, as both Schalke and Borussia Dortmund were held at home.
Dortmund failed to beat lowly Kaiserslautern, despite taking the lead at The Westfalenstadion.
Jan Koller scored on the stroke of half time, but Brazilian striker Lincoln sealed a draw with 15 minutes remaining.
Likewise, Schalke were held 1-1 by Wolfsburg after taking the lead.
Turkish starlet Hamit Altintop pounced on 26 minutes, but Bulgarian Marin Petriv levelled on 40.
Borussia Monchengladbach leapfrogged 1860 Munich in the table after a 2-1 success at The Olympic Stadium.
Ivo Ulich put Borussia ahead after 15 minutes, before Benjamin Lauth levelled just after the hour.
The winner came with just seven minutes remaining when Arie van Lent pounced.