Tottenham's 11-match unbeaten league run ended as Matthew Etherington scored twice against his old club to hand Stoke a third straight league win.
One of four former Spurs players to feature for the hosts, Etherington tapped in to open the scoring.
He doubled the lead with a scuffed strike from Ryan Shotton's long throw before Emmanuel Adebayor converted a penalty after a foul on Luka Modric.
Tottenham pushed for an equaliser but faded once Younes Kaboul was sent off.
It was a harsh dismissal for a second yellow card and Spurs were also aggrieved with several other decisions by referee Chris Foy.
Peter Crouch appeared to handle in the build-up to Etherington's opener, Ryan Shawcross cleared a Kaboul shot off the line at 2-1 and, in the scramble that followed, Adebayor saw a strike incorrectly ruled out for offside.
Jermain Defoe also felt one of his shots was blocked by a hand.
The defeat stops Tottenham's winning streak in the league at six games and leaves them five points behind second-placed Manchester United with a game in hand.
Stoke have been in impressive form in recent weeks and are now up to eighth in the table.
Their previous two league meetings with Spurs at the Britannia ended in defeat but they made the more purposeful start on this occasion - with Crouch, Etherington, Jonathan Woodgate and eventual substitute Wilson Palacios up against their old team.
There was no place in the side for Rory Delap but long-throw duties fell to Shotton and he proved a highly capable replacement.
Only 37 seconds were on the clock when his looping delivery was cleared to Etherington and the 30-year-old's volley drew a diving save from Brad Friedel.
Clearly aware of their opponents' strength in central midfield - where Scott Parker, Modric and Rafael van der Vaart have formed one of the division's more fearsome trios - Stoke looked to attack from wide areas at every opportunity.
The tactic paid off when Shotton's cross was flicked by Jon Walters to Crouch and