Match ends, Tottenham Hotspur 2, Manchester City 0.
Steven Bergwijn marked his debut with a superb volley as Tottenham won a bad-tempered Premier League affair with 10-man Manchester City to boost their top-four hopes.
The result lifts Spurs to fifth, four points behind fourth-placed Chelsea, while City remain second, 22 points behind leaders Liverpool who can win the title on 21 March when they play Crystal Palace.
The 22-year-old's goal came with Spurs' first shot on target, after Oleksandr Zinchenko had been dismissed for a second yellow card and City midfielder Ilkay Gundogan had seen a first-half penalty saved by Hugo Lloris.
Son Heung-min's effort, which deflected off Fernandinho as it flew past City goalkeeper Ederson into the bottom left corner confirmed a valuable victory for the hosts.
- Why Spurs win was no Mourinho masterclass - analysis
- Player Rater: who was your man of the match?
- Football Daily podcast: Bergwijn's brilliant debut and tough times at the bottom
Pep Guardiola's City side had arrived in London chasing their fifth league win in six games and dominated possession but failed to convert a glut of glorious chances.
Lloris brilliantly flicked a Sergio Aguero effort on to the post and the Argentine was then at the centre of a chaotic few minutes towards the end of the first half, winning a penalty awarded by VAR following Serge Aurier's clumsy challenge.
Gundogan however, saw his spot-kick - which took four minutes to be given - saved by Spurs keeper Lloris, with VAR then asked to rule on whether the France goalkeeper had fouled City's Raheem Sterling as both pursued the rebound.
Tottenham's Toby Alderweireld and Zinchenko were booked as both sets of players confronted each other in the aftermath, while Spurs boss Jose Mourinho appeared angered at the referee's failure to book Sterling for diving when a second penalty was not awarded.
Sterling had earlier appeared fortunate to escape with only a 12th-minute booking, after replays showed his studs landing on the ankle and lower shin of Spurs midfielder Dele Alli.
City though were reduced to 10 men after the break, with Ukrainian Zinchenko receiving his marching orders for a foul on Harry Winks.
That allowed Spurs to gain a foothold in the game, with Bergwijn firing Lucas Moura's clever cross into the bottom right corner from 15 yards to set them on their way.
Bergwijn makes immediate impression
Until the hour mark this had looked like being another occasion on which Spurs were going to sorely miss Harry Kane as the focal point of their attack.
Son and Moura provided dynamism and debutant Bergwijn showed some neat touches, but Kane's ability to hold the ball and bring others into play was absent as the hosts repelled wave after wave of City attacks.
And then the game dramatically swung in Tottenham's favour, thanks largely to Winks' surge forward which drew Zinchenko into a rash challenge and hastened his early departure.
City, who had been readying Gabriel Jesus, were suddenly forced into a rethink and while they attempted to reorganise Spurs went ahead.
Bergwijn, who arrived at the club on Wednesday in a £27m deal from PSV Eindhoven had last scored on 7 December against Fortuna Sittard.
But there was nothing routine about the way he introduced himself to supporters of the north London club - capping a tenacious display with a fine goal.
It marked a dream debut for the Netherlands winger, who pulled up with cramp in the second half, but who was afforded a hero's ovation when he was withdrawn after 70 minutes.
City lack finishing touch
While Spurs manager Mourinho cut a frustrated figure in the first period over perceived injustices, the roles were reversed after the break with his old nemesis Guardiola appearing exasperated by his own team.
Having reminded his City side to be "more clinical" after their Manchester derby loss on Wednesday, he appeared agitated by their first-half penalty miss and the decision not to award them a second penalty.
And that was compounded two minutes into the second period when German midfielder Gundogan missed a gilt-edged chance, firing over from six yards after Sterling had laid the ball into his path and Aguero's initial effort was cleared off the line by Alderweireld.
The champions had 18 shots but only hit the target five times and both substitute Jesus and Bernardo Silva were unable to convert late chances.
City's lack of cutting edge ensured a sixth defeat of the season, which is as many as in their past two title-winning campaigns combined.
Man of the match - Giovani Lo Celso (Tottenham)
'It happened again' - what they said
Tottenham manager Jose Mourinho told BBC Match of the Day: "With a few draws of people in the same area of the table as us, it was very important to get three points. We still have an eye on fourth. It was a match where you know the quality of the opponent. You want to win, but you can lose. I'm delighted with the boys.
"Only [VAR] Kevin Friend can explain why it was not a red card [for Raheem Sterling]. He has the chance to watch again. That decision would change the game. It would probably not be such an enjoyable game, one team with one player more for an hour is a big advantage. I think it's a clear red card."
On Steven Bergwijn's goal: "It's the best way to come to a club. We were not putting pressure on him. We signed him early in the week, so we had time for him to train and speak. He's very intelligent, humble. At home against the champions, to score a goal, not a normal goal, couldn't be better for him."
On beating Pep Guardiola: "It's a pleasure to get three points in a match where we knew it would be very difficult. I have better feelings for Pep than you can imagine. We worked together for three years."
Manchester City boss Pep Guardiola told Sky Sports: "We played well but lost the game. It happened again. They had two shots and scored two goals.
"I don't have too many things to say about the performance. We have to accept it and analyse it. It is not easy. We did really well, honestly.
"With this performance, how should I be critical? This performance would be an incredible mistake to say how bad they are. We created chances and conceded few.
"A few times this season it has happened. The sending off was a key point. We said at half-time be careful, yellow cards are a fast and quick action."
Another City player sees red - the stats
- Spurs picked up their first Premier League win against Manchester City since October 2016, which was also a 2-0 victory on home soil (at White Hart Lane).
- Manchester City have now lost six games in the Premier League this season, their joint-most in a single campaign under manager Pep Guardiola (six in 2016-17).
- Spurs boss Jose Mourinho picked up his sixth win against Guardiola across all competitions - only Jurgen Klopp has defeated him on more occasions (8). However, Mourinho has now won against Guardiola with four different teams (Inter Milan, Real Madrid, Manchester United and Spurs), the most of any manager.
- Manchester City have gone consecutive games without scoring for the first time under Guardiola, having last done so back in March 2016 under Manuel Pellegrini (three games without a goal).
- Steven Bergwijn's opener for Spurs saw him become the 250th player to score on his debut in the Premier League, and the 13th Dutchman to do so.
- Since the start of 2016-17, only Jamie Vardy (6) has scored more goals against Guardiola's Manchester City than Spurs' Son Heung-min (5) across all competitions.
- Manchester City have failed to score four of the last six penalties they have taken across all competitions, with three different players accounting for these failed spot-kicks (Gabriel Jesus x2, Raheem Sterling and Ilkay Gundogan).
- Spurs goalkeeper Hugo Lloris has saved three of the last four penalties he has faced in the Premier League - indeed, the Frenchman has now made the joint-most penalty saves for the club in the competition (five - along with Heurelho Gomes).
- Oleksandr Zinchenko became the third Manchester City player to be sent off in the Premier League this season - no team have been awarded more red cards than Guardiola's side in 2019-20.
Tottenham host Southampton in an FA Cup fourth-round replay on Wednesday, 5 February (19:45 GMT), before returning to Premier League action at Aston Villa on Sunday, 16 February (14:00).
Manchester City host West Ham in their next Premier League game on Sunday, 9 February (16:30).
- 4AlderweireldBooked at 42mins
- 6D Sánchez
- 18Lo CelsoBooked at 66mins
- 7Son Heung-Min
- 20AlliSubstituted forNdombeleat 70'minutes
- 23BergwijnSubstituted forLamelaat 70'minutes
- 27Lucas MouraSubstituted forDierat 84'minutes
- 19R Sessegnon
- 30Carvalho Fernandes
- 2WalkerBooked at 33mins
- 11ZinchenkoBooked at 60mins
- 17De Bruyne
- 16RodriBooked at 90mins
- 26MahrezSubstituted forGabriel Jesusat 72'minutes
- 10AgüeroSubstituted forCanceloat 64'minutes
- 7SterlingBooked at 12minsSubstituted forBernardo Silvaat 84'minutes
- 9Gabriel Jesus
- 20Bernardo Silva
- Mike Dean
- Shots on Target
Second Half ends, Tottenham Hotspur 2, Manchester City 0.
Attempt blocked. Kevin De Bruyne (Manchester City) right footed shot from the left side of the box is blocked.
Rodrigo (Manchester City) is shown the yellow card for a bad foul.
Foul by Rodrigo (Manchester City).
Erik Lamela (Tottenham Hotspur) wins a free kick in the defensive half.
Attempt saved. Son Heung-Min (Tottenham Hotspur) right footed shot from the left side of the box is saved in the top centre of the goal. Assisted by Giovani Lo Celso.
Attempt saved. Gabriel Jesus (Manchester City) header from the left side of the six yard box is saved in the centre of the goal. Assisted by Bernardo Silva.
Corner, Manchester City. Conceded by Hugo Lloris.
Attempt saved. Kevin De Bruyne (Manchester City) right footed shot from a difficult angle and long range on the left is saved in the top right corner.
Attempt blocked. Bernardo Silva (Manchester City) left footed shot from the centre of the box is blocked. Assisted by Kevin De Bruyne.
Substitution, Manchester City. Bernardo Silva replaces Raheem Sterling because of an injury.
Substitution, Tottenham Hotspur. Eric Dier replaces Lucas Moura.
Foul by João Cancelo (Manchester City).
Lucas Moura (Tottenham Hotspur) wins a free kick in the defensive half.
Foul by Rodrigo (Manchester City).
Tanguy Ndombele (Tottenham Hotspur) wins a free kick in the defensive half.
Corner, Manchester City. Conceded by Toby Alderweireld.
Attempt blocked. Fernandinho (Manchester City) right footed shot from the centre of the box is blocked.
Kevin De Bruyne (Manchester City) wins a free kick in the attacking half.