Eintracht Frankfurt beat Cologne 2-0 on Sunday in the Bundesliga.
Frankfurt provisionally moved two places up to third on 39 points from 21 games, one ahead of fourth-placed Wolfsburg who host seventh-placed Borussia Moenchengladbach later. Cologne stayed 14th on 21 points.
In-form Portuguese striker Silva fired Frankfurt ahead with his 18th league goal of the season in the 57th minute and centre back Ndicka sealed the home side's win with a glancing header in the closing stages.
Bayern suffer shock loss to Frankfurt for first home defeat in Bundesliga since 2019
- West Brom hold Man Utd as visitors' title hopes grow more distant
- Maguire: Decisions are going against Man Utd
Frankfurt dominated and Silva missed several chances in the first half, heading one Filip Kostic cross wide and another over the bar while visiting goalkeeper Timo Horn twice denied Daichi Kamada with superb saves.
Silva finally broke the deadlock with a predator's finish as he dinked the ball over Horn from close range after getting on the end of Eric Durm's wayward low shot from 20 metres.
With Cologne on the back foot, N'Dicka struck in the 79th minute when he met an inswinging Kostic corner and steered it past the wrong-footed Horn.
Champions and leaders Bayern Munich who are on 48 points from 20 games, four ahead of second-placed RB Leipzig, host relegation-threatened Arminia Bielefeld on Monday in the round's final match.
Perez promises Mbappe and €100m to Zidane on one condition - Euro Papers
Kamara sent off in Rangers loss, Celtic thrashed by Leverkusen
Lewandowski strikes to earn Nagelsmann first Bundesliga win for Bayern