In a drama laden contest, the German midfielder’s spot kick was saved by Hugo Lloris and it proved costly, with Bergwijn netting a superb volley just three minutes after Zinchenko was dismissed for a second bookable offence.
Son sealed the victory for the hosts when his strike deflected off Fernandinho and beyond Ederson to cap a frustrating afternoon for Pep Guardiola's side.
That City finished with 18 shots to Spurs’ three tells the story of a game in which we were left ruing missed opportunities.
De Bruyne blazed wide on the angle in the opening exchanges before Lloris' stretched out a toe to make a fine stop from Sergio Aguero's low drive.
The Argentine would fire into the side netting from five yards before the break, but only after the game sprung to life in the most dramatic of fashions.
It started when Serge Aurier’s clumsy tackle on Aguero in the penalty area went unpunished by Mike Dean and play continued for another two minutes before the referee got word from the VAR official that a spot kick should be awarded.
Lloris guessed correctly to push Gundogan’s effort away, but VAR was again required when Raheem Sterling went down as he and the Spurs’ captain chased down the rebound.
The decision went the host’s way, but only after Zinchenko picked up his first booking following a melee in which players from both teams protested fiercely.
Japhet Tanganga collided with Lloris to give City another golden opportunity in a breathless encounter, but the stretching Gundogan blazed over with the goal gaping after Sterling put too much pace on his square pass.
Zinchenko was dismissed when he checked Harry Winks as Spurs counter-attacked from Riyad Mahrez's misplaced corner and Jose Mourinho’s side instantly made their numerical advantage pay.
Lucas Moura picked out Bergwijn with a clipped ball, which the debutant took down on his chest before volleying into the bottom right corner in what was the North London outfit's first shot of the game.
Our task was made even harder with 20 minutes remaining when Son's 18-yard effort deflected off Fernandinho's leg and into the bottom left corner, but City continued to create chances.
De Bruyne forced a fingertip save from Lloris before Davinson Sanchez turned the Belgian's centre onto the crossbar, as we fell to our first defeat in five Premier League games.
"We played well, but we lost the game. They arrived twice and scored two goals. I don’t have too many things to say about our performance.
"It’s happened before too against United where they created a few and we did a lot but didn’t score. We have to accept it and work on that. We need to analyse that."
What it means
City remain second in the Premier League, two points ahead of third-placed Leicester City and ten points clear of Chelsea in fourth.
Liverpool hold a 22-point lead at the top of the table with 13 games left to play.
Guardiola's side have six days off before we’re next back in action against West Ham United.
We host the Hammers at the Etihad Stadium on Sunday 9 February, with kick-off at 16:30 (UK), in what is our final fixture before the Premier League's winter break comes into effect.