This was a draw of convenience. Manchester City, already serenely progressed into the Champions League knockouts, were only concerned about obtaining top-spot in the group. Borussia Dortmund, meanwhile, needed just a point to book their own place in the last-16 after Sevilla had defeated Copenhagen earlier and opened the door for the German team. Both got what they wanted.

It might have been different had Riyad Mahrez converted a second-half penalty but Dortmund ‘keeper Gregor Kobel was up to the City winger’s spot-kick, repelling the effort to the acclaim of the Yellow Wall. It was the second consecutive Champions League game in which Mahrez had missed a penalty and, quite remarkably, it was the 25th that City have squandered in all competitions under Pep Guardiola.

Despite City accumulating 73 per cent possession, it was Dortmund who out-shot their visitors — and an away win would have been tough for Edin Terzic and his wonderfully-backed team to take. For the entire 93 minutes, despite a slow-tempo affair at times on the pitch, those in the stands never stopped singing in support of their team.

Story of the game

The pre-match hype, inevitably enough, had been dominated by the return of Erling Haaland to the team for whom he scored 89 goals in 86 appearances. The Norwegian has found his new life in Manchester equally as fruitful, but he couldn’t score against his former club before being withdrawn at half-time.

It was a night of some experimentation for City too. Guardiola awarded goalkeeper Stefan Ortega his club debut and the German, in his homeland, showed that he is a fine and reliable deputy to Ederson. Julian Alvarez also started and moved into the centre-forward role in the second half. He was sharp and busy, even if Dortmund restricted him in front of goal.

Rather, Youssoufa Moukoko, Dortmund’s lone striker in attack, made the greatest impact in the opening 45 minutes. The 17-year-old missed the best chance of the first half, as he arrived on the end of a brilliant cross from Karim Adeyemi but could only steer his effort wide from no more than a few yards out.

Youssoufa Moukoko had the hosts' best chance in the first half (Getty)

That was one of a handful of promising openings that Dortmund carved out down City’s left, taking advantage of Joao Cancelo’s tendency to push inside to join midfield. The Dortmund duo combined again just before the break with Moukoko this time shooting directly at Ortega.

Mats Hummels and Emre Can had been dealing well with City’s attack until the final minute of the half when Nathan Ake lost his defensive markers and rose to great Phil Foden’s free-kick but could only head the ball over the crossbar.

Guardiola rotated at the interval with Manuel Akanji and Bernardo Silva coming on for Cancelo and Haaland respectively. Had Haaland still been on the pitch, then surely he would have taken control of the penalty awarded in the 56th minute. Can clumsily caught Mahrez in the area and referee Davide Massa quickly pointed to the spot.

Haaland has converted his two penalties this season but it fell to Mahrez to redeem for his miss against Copenhagen. The Algerian’s effort was not placed far enough into the corner and Kobel produced a double-handed save. The Dortmund ‘keeper also kept Ilkay Gundogan and Alvarez at bay late on. It was a draw that suited both.

Player of the match: Gregor Kobel

The much-maligned goalkeeper gave the Yellow Wall their one true moment of celebration in this rather quiet game. His penalty save to deny Mahrez was the key moment of the game and ensured Dortmund progressed to the last-16 with a game to spare.