That their opponents were largely going through the motions was of only the barest relevance. Of course Manchester City came to win. It’s just that if they had really needed to, you sensed they would probably have found a way. A draw here suited both teams fine, with City already qualified for the last 16 and Dortmund needing just a point. And for all the brief flurries of drama, including a missed penalty by Riyad Mahrez, this was ultimately a match of narrowed ambitions and thwarted plans: a learning experience rather than a red-hot contest. So what did Pep Guardiola learn? Probably a lot that he already knew. That City at anything less than their usual feverish intensity remains vulnerable in transition. That the goalkeeper Stefan Ortega is a fine and reliable deputy to Ederson. That Julian Álvarez can be a viable Plan B when Erling Haaland is injured or rested. Álvarez moved into the centre-forward role when Haaland was withdrawn at half-time, and even if he enjoyed few sights of goal himself, his sharp movement and smart link play helped City exert increasing control as the game went on. And even if the stakes were not at their highest, the atmosphere was as rabidly, raucously good as ever. The Südkurve heaved and howled and hammered out all the old tunes, a hurricane of song and aggression. They roared every block and clearance, screeched the long spells of City possession and even gave their returning star Haaland a warm welcome. Erling Haaland, on a subdued return to Borussia Dortmund, is tackled by Emre Can Photograph: DeFodi Images/Getty Images Naturally, Haaland’s lack of potency improved their mood no end. It was a quiet performance from City’s No 9, playing through a slight bout of flu and enjoying just 13 touches in comparison to the 1,006 made by his teammates. His substitution was as much a precaution as anything else, having picked up a slight knock to his foot – not serious, by the looks of things, but certainly a small crumb of optimism for Brendan Rogers, whose Leicester side face City on Saturday. The curiosity was that City seemed to improve after Haaland went off. It had been a pale first half from them, with Dortmund enjoying several threatening moments in transition, the two best chances falling to Youssoufa Moukoko. In many ways this has been Dortmund’s Achilles heel this season under Edin Terzic: promising approach play marred by poor execution, and a consequent failure to capitalize on their dominant periods. And as Mahrez stepped up to take a penalty he had won himself, after dropping the shoulder and drawing a clear foul from Emre Can, it felt like a familiar script was about to play out. But then Mahrez from 12 yards is its own unique kind of psychodrama, and sure enough a poor penalty was beaten away by the much-maligned Dortmund goalkeeper Gregor Kobel. Kick off your evenings with the Guardian’s take on the world of football Privacy Notice: Newsletters may contain information about charities, online ads, and content funded by outside parties. For more information see our Privacy Policy. We use Google reCaptcha to protect our website and the Google Privacy Policy and Terms of Service apply. “Since I got here I don’t know how many millions of penalties we have missed,” Guardiola grumbled. “It’s a big problem. Riyad will reflect, he will practice. And for now, he will take a break.” Ominous. But no sooner had a reprieved Dortmund begun to feel that it might be their night, the quiet waves of blue began to wash over them. In a way, this sterile dominance was an impressive feat of visualization by City, simply shrugging off the missed penalty by pretending they had actually scored it. John Stones stepped up into midfield and started directing play. Ilkay Gündogan started to loiter further forward and shift the point of attack. Rodri made 138 passes, not that anyone – perhaps even Rodri himself – would remember a single one of them. And ultimately the yellow wall held firm? that City were not hell-bent on cracking it would prove to be Dortmund’s greatest fortune of all.