Pep Guardiola never does things the easy way in the Champions League.
And, once again, they had to dig deep in a crazy rollercoaster finish at the Etihad which saw them get pegged back and then get a precious last gasp 90th minute winner through Phil Foden.
Just imagine if the fans had been inside the stadium to witness such an incredible ending
It will surely still be enough to get Manchester City into the semi finals after bailing out in the quarters in each of the last three seasons.
Of course it was Kevin De Bruyne who was the difference as he scored the first goal for City, launched the attack for Foden’s late winner and delivered yet another man of the match performance.
This was De Bruyne almost making his own statement in the Champions League to show he is still the established, proven talent among Dortmund’s stars of the future.
Erling Haaland showed in flashes why he is rated as the most sought after forward in Europe, Jude Bellingham was so unlucky not to score and that was even before Marco Reus’s late goal to give Dortmund hope.
But when City needed to find another gear to win the tie, they did just that and showed the quality which will make them such a difficult team to stop in this season’s Champions League.
Incredibly, it was City’s 27th win in 28 games, the first goal they conceded in eight Champions League games and they will start next week’s return leg as red-hot favourites.
City are still on course for the quadruple, this month will be decisive in Europe, they have got an FA Cup semi final and Carabao Cup final with the Premier League as good as tied up.
They have been so good this season that maybe they were expected to make easier work of Dortmund but, despite flailing in the Bundesliga this season, the Germans are still seasoned European campaigners.
Dortmund will count themselves unlucky in key decisions from Romanian referee Ovidiu Hategan – who inexplicably disallowed a perfectly good equaliser from Bellingham – but the reality was that City were still the better side overall.
Furthermore, Dortmund only had themselves to blame for De Bruyne’s opening goal after 18 minutes following a dreadful mistake from ex-Liverpool midfielder Emre Can.
Can presented the ball to Riyad Mahrez, De Bruyne bombed forward, Foden crossed and Mahrez pulled the ball back for De Bruyne to score from close range.
It nearly got even better for City when they thought they had a penalty after 29 minutes.
Hategan pointed to the spot after Rodri went down in spectacular fashion under Can’s challenge but the referee checked his touchline monitor and correctly changed his mind.
However, Hategan then got it completely wrong soon after – and this time VAR did not step in to help.
Bellingham, who had looked magnificent in Dortmund’s midfield, chased down the ball, nicked it off Ederson’s foot and yet it was ruled out for a foul on the City keeper.
It was one hell of a let-off because, if anything, Ederson fouled Bellingham.
Haaland went through in the second half but was denied by Ederson while Foden saw an effort blocked on the line.
City could not kill off the tie and it so nearly came back to haunt them. Haaland set up Reus to score from close range in the 84th minute and suddenly the tie was wide open again.
But City somehow found an extra gear. De Bruyne pinged the ball forward, Ilkay Gundogan’s clever lay-off set up Foden and he crashed home the late winner.
Sign up to the Mirror Football email here for the latest news and transfer gossip.