Eintracht Frankfurt dented Borussia Dortmund's Champions League qualification hopes with a late winner in the Bundesliga.
Nico Schulz's own goal opened the scoring for Frankfurt before Mats Hummels equalised after 44 minutes.
The visitors saw Stefan Ilsanker's headed finish ruled out for offside in the 65th minute.
But Andre Silva's 87th-minute winner meant fourth-placed Frankfurt went seven points clear of Dortmund.
Dortmund, who have won just one of their past five fixtures, face Manchester City in the Champions League quarter-finals in their next match on Tuesday (20:00 BST).