City dominated early on and took the lead via Steve Howey only for Perry to level against the run of play before the break.
Davies struck within two minutes as we took control of the second half, Poyet finally made it 3-1, Christian Ziege was then sent off and Ali Bernarbia replied in injury time as we held on for maximum points.
Roles were reversed from last week's derby against Arsenal in the first half as City took control and were probably left scratching their heads how we were level at the break.
City's first chance arrived in the second minute, they took the lead after 29 minutes, Keller was forced into action and Carr cleared off the line all inside the opening half-hour.
But all that mattered little when Perry dived amongst the boots to convert Ziege's wicked corner to equalise and that appeared to knock the stuffing out of the home side as we finished the half the stronger.
Earlier, Berkovic lobbed just wide with Keller stranded after just two minutes and Foe forced the keeper into a fine save to his left from Berkovic's corner minutes later - Carr blocking Anelka's follow up on the line.
Keller saved comfortably twice from Anelka and the French forward created havoc after 17 minutes but no-one was there to convert his cross.
All that came inside the first 20 minutes and after a more even spell of pressure, the home side took the lead.
Horlock provided the ammunition from a free-kick to the right side of the area and Howey's clever flick on the turn nestled beyond Keller into the far corner.
It took us 35 minutes to settle but only one chance to level. It all started with the move of the half, a series of one-touch passes as we swept from end-to-end and Ziege's shot deflected just wide. Ziege took the corner himself, a vicious delivery and Perry dived to head from from six yards, his first of the season.
Foe had a couple of half-chances but we ended the stronger and Schmeichel had to be at his very best to tip aside a Ziege thunderbolt just before the break.
The second half was a completely different story as we came out firing and the game developed into a classic.
Only two minutes had gone when we took the lead as Davies started and finished the move, releasing Keane before racing into the box to meet his inch-perfect cross.
Iversen might then have done better from Ziege's cross and after a magnificent last-ditch Richards tackle to deny Tiatto, Iversen watched in agony as he charged down Schmeichel's clearance only for the ball to creep wide of the empty net.
Ziege, twice, Keane and Richards all went close in the next few minutes and Goater headed tamely wide as the game crackled end-to-end.
Berkovic clipped the post after Benarbia's burst down the left with 12 minutes left and then the clincher.
With 83 minutes on the clock, Ziege whipped in another lethal corner met by substitute Poyet's header from eight yards that left Schmeichel with no chance.
There was still more drama. Our evening was clouded as referee Jeff Winter sent off Ziege, incredibly, for a second yellow card for the same petty offence - kicking the ball away.
Keller saved superbly from Huckerby and Benarbia got the reward his late contribution deserved with a fine finish into the top corner.
There was still time for a few heart-stopping moments as injury time stretched from three to five minutes but in the end, we were deserved winners.
Press refresh for regular updates
2mins: King misread long pass from Howey, Berkovic through on outrushing Keller, lobbed inches wide.
5mins: Wicked Berkovic corner flicked towards goal by Foe from eight yards, superb save by Keller low to his left, Carr then blocked Anelka's follow up on line.
7mins: YELLOW. Freund for foul on Berkovic.
9mins: Low shot from Goater from 20 yards saved comfortably by Keller to his left.
12mins: Anelka, under pressure, still managed to curl towards goal from 20 yards, plucked out of air by Keller.
17mins: Anelka jinked past Richards but no-one there to convert low cross inside six-yard box.
26mins: Iversen in space on byline after first period of pressure but crossed too deep.
29mins: GOAL. Clever Howey back-header from Horlock's inswinging free-kick crept in at far post. 0-1.
31mins: Carr drove in cross from byline, cleared high in the air by Howey but Schmeichel took control of potentially difficult situation.
37mins: Sweeping move the length of the pitch involving Keane, Davies and Ziege ended with Ziege's shot deflected wide.
37mins: GOAL. Perry met Ziege's vicious corner with a diving header from six yards that flew into the net. 1-1.
39mins: Foe's header from Sun Jihai's deep cross saved comfortably by Keller.
44mins: Foe volley straight at Keller from 22 yards.
45mins: SAVE. Dunne failed to deal with Anderton's pass, loose ball fell to Ziege who crashed in a shot from 18 yards but Schmeichel superb reaction save to his right.
Injury time: Anelka flashed shot just over from 20 yards.
Half-time: City 1-1 Spurs
47mins: GOAL. Davies pass released Keane, he held the ball up before teasing a cross over Schmeichel where Davies had made up the ground to head home at the far post. 2-1.
54mins: YELLOW. Tiatto for foul on Carr.
56mins: Ziege cross met by Iversen, cross shot that Davies just failed to convert.
58mins: SUB. Benarbia for Sun Jihai.
59mins: Superb last-ditch tackle from Richards denied Tiatto who was otherwise through on goal.
61mins: CLOSE. Iversen charged down Schmeichel's attempted clearance, ball seemed to move in slow motion towards the empty net before finally dribbling inches wide.
62mins: Schmeichel shovelled away Ziege's shot from a tight angle.
63mins: YELLOW. Foe for foul on Freund.
63mins: Richards headed Anderton's free-kick over from 10 yards.
69mins: Keane through on goal but blasted over from 16 yards.
70mins: Ziege curler with right foot just wide.
70mins: SUB. Poyet for Iversen.
71mins: YELLOW. Ziege for kicking ball away.
72mins: Tiatto's deflected cross headed wide from close range by Goater.
75mins: Schmeichel out quickly to save at Keane's feet.
78mins: POST. Benarbia robbed Carr, played ball into Berkovic, right-foot volley from edge of box clipped right post with Keller beaten.
83mins: GOAL. Ziege corner met by low header from Poyet from eight yards, Schmeichel helpless to stop it. 1-3.
83mins: SUB. Huckerby for Goater.
85mins: YELLOW/OFF. Ziege for kicking the ball away, again. This time sent off.
87mins: SAVE. Keller magnificent block to deny Huckerby.
Injury time: YELLOW. Perry for foul on Benarbia.
Injury time: GOAL. Benarbia fine finish into top right corner. 2-3.
Line-ups: City: Schmeichel, Tiatto, Sun Jihai (Benarbia, 58), Distin, Howey, Dunne, Berkovic, Foe, Horlock, Goater (Huckerby, 83), Anelka. Subs: Nash, Jensen, Wiekens.
Spurs: Keller, Carr, Ziege, King, Perry, Richards, Freund, Anderton, Davies, Iversen (Poyet, 60), Keane. Subs: Bunjevcevic, Thatcher, Clemence.
Chris Perry, Simon Davies and Gus Poyet were the Maine men as we turned this Premiership cracker on its head.