Phil Foden struck late to give Manchester City a slim lead over Borussia Dortmund at the Etihad.
Kevin de Bruyne broke the deadlock but after City failed to add to their lead, Marco Reus levelled with four minutes remaining from Erling Haaland’s pass.
However Foden struck at the death to hadn’t Pep Guardiola’s side a narrow advantage.
The Germans deserved more after Jude Bellingham’s goal was ruled out for no reason, with the Englishman clearly not fouling Ederson. However the referee whistled for it and it meant VAR could not intervene.
"I definitely think I won the ball fairly, it's a bit frustrating in a time when they've got so many cameras watching the game they don't wait for me to put the ball in the net and then check it,” said Bellingham.
“It's football, it's life, just got to get on with it. All I've been told is I've been booked and it's a free kick for them. I think they should have checked it.”
Haaland missed his one big chance, denied by the City stopper, but played a fine ball for the equaliser near the end, dispatched by Reus.
However Dortmund’s joy was short-lived with Foden firing home form close range to give City a lead to take to Germany.
LATEST EPISODE of SIEMPRE POSITIVO, the best FC Barcelona podcast in English