Stuttgart travel to Borussia Dortmund on Saturday just three points behind second-placed Bayern Munich with seven games remaining, chasing their best Bundesliga finish in 17 years.

If not for Xabi Alonso's unbeaten Bayer Leverkusen, who are 13 points clear and cantering towards a maiden top-flight crown, Stuttgart would have undoubtedly been the story of the season. 

Needing to win a two-legged playoff against second-division Hamburg to stay in the Bundesliga last campaign, Stuttgart are on the cusp of Champions League qualification for the first time since 2009-10. 

In going down 2-0 at home to Dortmund last weekend, Bayern played like a side who knew their hopes of catching Leverkusen were purely mathematical. 

Dejected Bayern coach Thomas Tuchel sent his "congratulations to Leverkusen" after the game. 

Bayern play at promoted Heidenheim on Saturday.

With Bayern now expected to focus on their Champions League quarter-final tie with Harry Kane's old foes Arsenal, Stuttgart could do the unthinkable and finish above the likely outgoing German champions, securing their highest placing since winning the title in 2006-07. 

Although the Bavarians travel to Stuttgart in May, Sebastian Hoeness' side could take a major step towards overtaking Bayern by beating Dortmund on Saturday, cementing their top-four hopes in the process.

Stuttgart have soundly beaten Dortmund twice this season -- at home in the league and in the German Cup -- and are one of only four teams to take points off Leverkusen in 40 matches in any competition.

Dortmund are on a five-match winning streak and have lost just one of 13 games this year.

Hoeness on Thursday recognised the task at hand, saying: "We know we are playing probably the most difficult game there is at the moment against a team in very good form."

"There's something special about playing in Dortmund."

Dortmund boss Edin Terzic said his side needed to be wary of more than just Stuttgart's strike duo of Serhou Guirassy and Deniz Undav, who have a combined 38 league goals this season.

"Stuttgart is doing a great job this season. The strikers are heavily in focus, but the lads behind them are doing really well.

"Stuttgart are flexible and full of self-confidence -- that's a dangerous mix."

Dortmund sit just three points clear of fifth-placed RB Leipzig but Terzic said his team had "drawn plenty of confidence from the game against Bayern", their first league win in Munich since 2014. 

Having qualified for the German Cup final with a 4-0 win over Fortuna Duesseldorf on Wednesday, Leverkusen can take another step towards the title with a win at Union Berlin on Saturday. 

Union coach Nenad Bjelica called Leverkusen "a mirror image of the coach. Xabi has brought new ideas and a game concept, which he and his players have implemented incredibly well."

One to watch: Florian Wirtz

Bayer Leverkusen midfielder Florian Wirtz has been the heart and soul of everything his side have done this season -- and appears to only be getting better. 

Fresh from scoring Germany's fastest ever goal after seven seconds against France in mid-March, Wirtz dominated in Leverkusen's 4-0 midweek rout of Fortuna Duesseldorf, scoring twice and laying on one assist. 

"He's so consistent. He delivers every three days and he's still just 20," Granit Xhaka said, adding that Wirtz was "right up there" with the best he has played with.

Duesseldorf goalkeeper Florian Kastenmeier saved special praise for his opponent, saying Wirtz had Leverkusen playing "like the Wild West out there".

"When you give Florian Wirtz 10 metres of space, then it's lights out."

Key stats 

73 - Bayer Leverkusen have 73 points with seven games remaining. Last year, Bayern and Dortmund finished on 71 after 34 games, with the Bavarians winning the title on goal difference.

4 - Four Leverkusen players have been in the squad for all 40 unbeaten matches this campaign: Granit Xhaka, Alex Grimaldo, Adam Hlozek and Robert Andrich.

6 - Wolfsburg's Maxence Lacroix, 23, picked up the sixth red card of his career against Werder Bremen and will miss two matches. He is the youngest player to reach the mark and is just two reds shy of the all-time record.

Fixtures (1330 GMT unless stated)

Friday

Eintracht Frankfurt v Werder Bremen (1830)

Saturday

Freiburg v RB Leipzig, Mainz v Darmstadt, Cologne v Bochum, Heidenheim v Bayern Munich, Union Berlin v Bayer Leverkusen, Borussia Dortmund v Stuttgart (1630)

Sunday

Hoffenheim v Augsburg, Wolfsburg v Borussia Moenchengladbach (1530)