Leroy Sane felt David Silva lifted Manchester City’s frustrations by grabbing a late winner at Hoffenheim.

Silva struck three minutes from time on Tuesday to snatch a 2-1 win and secure City’s first points of their Champions League campaign.

Prior to that it had been a frustrating evening for City at the Rhein-Neckar-Arena, with Sane denied what appeared a blatant penalty after being felled by goalkeeper Oliver Baumann in the second half.

German winger Sane said: “It was a really tough game, but we knew it would be. I know their team a little bit and have some friends in the team.

“At the end we did really good and David’s goal was perfect timing. We are really happy now.”

City had needed a result to ignite their European challenge after losing to Lyon in their Group F opener a fortnight ago.

Their hopes of achieving that suffered a blow inside the first minute as Bundesliga minnows Hoffenheim, hosting Champions League football for the first time, found a gap in the defence to strike through Ishak Belfodil.

Sergio Aguero quickly restored parity, but, despite enjoying spells of dominance, City lacked real control of the game.

Hoffenheim remained a threat throughout and City’s defence, with Aymeric Laporte at left-back in the absence of Benjamin Mendy and Fabian Delph, looked uncertain.

City began to look more dangerous after the 68th-minute introduction of Bernardo Silva and it was his deflected pass soon after coming on that set Sane on a charge towards goal. Remarkably, Solvenian referee Damir Skomina ruled Baumann’s challenge legal, much to the anger of City boss Pep Guardiola.

Bernardo Silva continued to trouble the defence and it was his cross that led to a mistake from Stefan Posch and allowed David Silva to pounce for the winner.

“The Champions League is always tough,” said Sane. “It doesn’t matter when or who you play, everything is open. It doesn’t matter how big the club is.

“But now we have made the next step we have three points and that’s really good.”

Guardiola had said City were facing five finals to qualify after their slip-up against Lyon.

“Everything is like a final,” said Sane. “We have to get the points to be first or second and get to the next round. We have to win the next two games, but we will take everything step by step.”