Dominik Szoboszlai and Andre Silva struck in either half as Manchester City fell to a 2-1 defeat at RB Leipzig in the Champions League.

Premier League leaders City headed to the Red Bull Arena on a 14-game unbeaten run against German opposition in the competition, including a 6-3 home win in the reverse fixture, but Szoboszlai broke the deadlock after 24 minutes this time.

Phil Foden responded by rattling the woodwork before the break, yet Leipzig scored the second goal when Silva converted on the counter, before Riyad Mahrez pulled one back for the visitors.

Pep Guardiola's hopes of a recovery were hit by Kyle Walker's red card, although his side had already secured top spot in Group A, with this result – combined with Club Brugge's defeat at Paris Saint-Germain – enough to take Leipzig into third and a Europa League play-off.

Kevin De Bruyne had poked narrowly off target in the opening stages before Lukas Klostermann blocked a presentable opportunity for Jack Grealish at the vital moment.

Klostermann's intervention paid dividends when Szoboszlai rounded Zack Steffen following Konrad Laimer's pass to open the scoring two minutes later.

Szoboszlai almost doubled his account but was denied by excellent Steffen reflexes, while Foden drilled onto the post and De Bruyne saw his free-kick turned away by Peter Gulacsi before the interval.

Opportunities were initially limited for City after the break, and they fell two behind when Silva coolly slotted into the bottom-right corner after Emil Forsberg's offload.

Fernandinho blasted over amid penalty claims for a foul on Raheem Sterling, before Mahrez headed in Oleksandr Zinchenko's cross to tee up a potentially nervy ending.

However, Walker was then dismissed for hacking through Silva as Leipzig held on.