David Silva's late winner ensured Manchester City earned their first win in the Champions League this season, with a 2-1 win away at Hoffenheim.
The game looked to be heading for a draw after Sergio Aguero cancelled out Ishak Belfodil's opener, but the Spaniard popped up just three minutes from time to snatch the win.
The hosts had the perfect start at the Rhein-Neckar-Arena, when Ishak Belfodil put Hoffenheim in front inside the first minute, finishing well off the through ball of Kerem Demirbay.
Their lead lasted only six minutes as Man City found an equaliser through Sergio Aguero. Leroy Sane was played in by a cutting pass from David Silva, before keeping his composure to find the Argentine, who managed to stab the ball home.
In a game played at a frantic pace, chances continued to come for the remainder of the half, primarily for the Premier League side, although smart saves from both goalkeepers meant there no further goals before the half time interval.
There was no let up in intensity throughout the second period, as both sides had chances to take the lead, while City will feel aggrieved they weren't awarded a penalty when Oliver Baumann looked to have brought down Sane, although Damir Skomina sheepishly pointed for a goal kick.
The game looked to be heading for a draw, before Silva pounced on a lose touch to fire home for City.
Here's our breakdown of this one...
Key Talking Point
It looked to be another frustrating night in the Champions League for Manchester City before Silva's winner, as chances came and went for the visitors.
Aguero and Raheem Sterling were guilty of wasting several chances that would've made their night in Germany a straight forward one, while Hoffenheim played their part in an entertaining game with their energy and pressing.
Pep Guardiola tweaked his side with formation and personal changes prior to Silva's winner as City appeared to be dropping more points, yet despite the win, the Premier League champions know Group F won't be the stroll many predicted.
Starting XI: Ederson (6); Walker (6), Kompany (6), Otamendi (4), Laporte (5); Gundogan (6), Fernandinho (6), D. Silva (9*); Sterling (6), Aguero (7), Sane (7).
Substitutes: Stones (6), B. Silva (6), Mahrez (6)
David Silva was magnificent for City once again, hauling his team over the line with his usuual poise and grace.
His pass to Sane was pivotal in the build-up to Aguero's equaliser, while he was in the right place to steal possession in the area and score what proved to be the winner.
Especially in the first half, Silva conducted play for City as they looked dangerous on the counter attack, and gave another example as to why he is such an important figure if Guardiola's side are to have any success this season.
City conceded within the first minute, which set the tone for what was an erratic display from Nicolas Otamendi at the heart of City's defence.
The Argentine was caught out of position for Belfodil's goal, while he continuously lunged into challenges and never looked comfortable all evening, eventually getting the hook in the 64th minute to compound his dismal performance.
Starting XI: Baumann (7); Brenet (6), Akpoguma (6), Posch (5), Kaderabek (6); Demirbay (8), Hoogma (7), Grillitsch (6); Joelinton (6), Szalai (5), Belfodil (7).
Substitutes: Kramaric (6), Bittencourt (6), Hack (N/A)
Despite the loss, one man who caught the eye was Kerem Demirbay in midfield, with his pass setting up Belfodil for their goal.
The German looked calm in possession all evening, with his performance bound to catch the eye of a number of sides around Europe.
Stefan Posch was caught out for City's winner, and the young defender looked uncomfortable during spells in the game, as he looks to learn from the experience.
Hoffenheim host Eintracht Frankfurt on Sunday when they return to Bundesliga action, with their next Champions League game at home to Lyon.
Manchester City have a tough league fixture away to Liverpool this Sunday, while their next fixture in Europe is away to Shakhtar Donetsk.