Pep Guardiola’s side advanced to the knockout stage of the league after Sevilla drew with Borussia Dortmund in Tuesday’s other Group G match.
Two disputed rulings set the tone for the evening in a tumultuous opening.
Rodri’s magnificent 25-yard shot for City was disallowed after Riyad Mahrez was penalised for handling, while the visitors benefited from a penalty when the ball struck home defender Nicolai Boilesen on the arm while he wrestled for a corner with Manuel Akanji.
But, to the joy of a rowdy Parken Stadium crowd, Copenhagen goalkeeper Kamil Grabara expertly stopped Mahrez’s spot-kick, before Guardiola’s side had Sergio Gomez sent off for a foul on 19-year-old striker Hakon Haraldsson five minutes later.
The judgement was made again after Portuguese referee Artur Dias was referred to the pitch-side monitor, forcing the English champions to reorganise and play the last hour with one man down.
Erling Haaland was benched against opponents who had been thrashed 5-0 in Manchester just under a week before.
Explaining his decision not to play the Norwegian, Guardiola said: “He finished the game against Southampton so, so tired and didn’t recover well.
“Yesterday was not good, today a little better but not perfect so we decided not to take the risk.”
While City’s run of six consecutive triumphs ended with this result, Guardiola was content with a point in a game they dominated early on.
A young Copenhagen side with six players aged 20 or under initially struggled to deal with the visitors’ experience and smooth passing, with Julian Alvarez also coming close to opening the scoring.
Despite losing Gomez soon before the half-hour mark, City maintained nearly 70% possession until the interval, albeit the game’s dynamics changed thereafter.
The visitors were confined to long-range chances because Bernardo Silva and Phil Foden were only added late in the game, having been rested for City’s upcoming Premier League trip to Anfield to face Liverpool on Sunday (16:30 BST).
Both Joao Cancelo and Kevin de Bruyne tested Grabara, while at the other end, Lukas Lerager’s dipping attempt was the closest Jacob Neestrup’s team came to scoring a goal.