Emmanuel Adebayor scored a late winner for Tottenham to keep their Champions League qualification hopes alive.
Stoke took the lead when Steven Nzonzi headed in Charlie Adam's free-kick.
Clint Dempsey fired into an empty goal after a mix-up in Stoke's defence to level before Adam was sent off after the break for a second yellow card.
Adebayor got the crucial second that put Tottenham up to fourth as he tapped home from close range following Dempsey's low cross into the area.
Arsenal still remain in control of their own fate as they have two games remaining - against Wigan and Newcastle - while Tottenham have just one more game, at home to Sunderland, and are relying on their north London rivals slipping up.
But after a draw in midweek against Chelsea, Tottenham knew three points was a must at the Britannia Stadium to stay in the race.
Their opponents, safe from the drop after halting a dismal winless run to take seven points from their last three games, were obviously keen to put in a performance on their 150th anniversary.
The home fans were all kitted out in red-and-white T-shirts laid on by the club to mark the occasion and it was not long until they had something else to celebrate.
The score remains the same
All five Premier League matches between Stoke and Tottenham at the Britannia Stadium have now finished with a 2-1 scoreline, Spurs on top three games to two
Adam swung in a free-kick in the third minute and Spurs were caught flat-footed - particularly Adebayor - as Nzonzi coasted towards the near post to head home, via keeper Hugo Lloris's glove and the post.
Dempsey thought he had pulled the visitors level with a clever flick but it was ruled out for offside.
However, the American was soon handed another opportunity to bring the sides level when his ball for Aaron Lennon was cut out by Marc Wilson and came back to his feet.
With Begovic out of his goal having come for the initial ball, Dempsey turned the ball into the empty net from distance.
Tottenham probed for a second but for all their possession around the Potters' area, they could not create a clear opening until five minutes before break.
Gareth Bale put in a free-kick that Michael Dawson rose to head but Begovic pushed it away.
The Welsh winger then had a chance of his own when Scott Parker put him through - but again the hosts' keeper denied Spurs.
However, when Adam was given a second yellow card by referee Kevin Friend for a trip on Jan Vertonghen just 78 seconds into the second half, the London side's prospects brightened.
Boss Andre Villas-Boas was urging his players on as Vertonghen wasted an excellent chance when he headed Tom Huddlestone's free-kick over from six yards out.
Bale, Tottenham's hero so often this season, then created space in the area with a clever turn before sending his shot was just wide.
But it was Adebayor who proved the saviour this time as he turned home with seven minutes to go, Wilson heading over a late chance for Stoke.
Stoke manager Tony Pulis:
"I don't think Charlie has touched (Jan) Vertonghen on the first one and on the second one he's made a mistake by sliding in, but again I don't think he touches him.
"We're disappointed in particular with their second goal because it was a deflection that let their lad in.
"I'm delighted for us to be in the Premier League for a sixth consecutive season.
"It's not just what the club have done on the pitch, it's what the club has achieved behind the scenes as well."
Tottenham manager Andre Villas-Boas:
"What we did was we kept the patience. It would have been very easy for us to lump it forward. We were rewarded in the end for that patience. In the end we got what we deserved.
"It is not easy - we had to be very patient but in any set play Stoke would have a chance to score again.
"It was difficult to break them down."
On needing Arsenal to slip up:
"Hopefully we can be rewarded for what we have done this season. This result enables us to play at home to Sunderland, and Arsenal have a tough trip to Newcastle.
"This puts more pressure on Arsenal but they are able to cope with it. We hope Wigan have their day."
Live Text Commentary
Full Time The referee signals the end of the game.90:00 +4:14
Emmanuel Adebayor takes a short corner.90:00 +3:54
Gareth Bale takes a shot. Andy Wilkinson gets a block in.90:00 +3:08
Header from close range by Marc Wilson clears the bar.83:16 Substitution
Substitution Gylfi Sigurdsson is brought on as a substitute for Clint Dempsey.82:01
Assist by Clint Dempsey.82:01 Goal scored
Goal! - Emmanuel Adebayor - Stoke 1 - 2 Tottenham Emmanuel Adebayor finds the back of the net with a goal from inside the six-yard box low into the middle of the goal. Stoke 1-2 Tottenham.80:42
Effort from outside the area by Mousa Dembele goes wide right of the goal.79:07
Jonathan Walters fouled by Kyle Walker, the ref awards a free kick. Dean Whitehead sends in a cross, Robert Huth produces a header from deep inside the six-yard box that clears the crossbar.75:17
Marc Wilson takes the free kick.75:17 Booking
Booking Tom Huddlestone booked for unsporting behaviour.75:07
Foul by Tom Huddlestone on Steven Nzonzi, free kick awarded.74:42
Shot by Gareth Bale from deep inside the penalty area misses to the right of the target.73:20 Substitution
Substitution Jermain Defoe is brought on as a substitute for Aaron Lennon.73:20 Substitution
Substitution Geoff Cameron is brought on as a substitute for Ryan Shotton.72:51
Aaron Lennon takes a shot. Blocked by Robert Huth.72:20
Corner taken right-footed by Tom Huddlestone from the left by-line to the near post, Cameron Jerome manages to make a clearance.71:12
Short corner worked by Gareth Bale.70:56
Clint Dempsey takes a shot. Save by Asmir Begovic.69:08
Andy Wilkinson has an effort at goal from the edge of the box that misses to the right of the target.
Close range header by Jan Vertonghen goes over the bar.68:08
Direct free kick taken by Tom Huddlestone.67:51 Substitution
Substitution Mousa Dembele joins the action as a substitute, replacing Scott Parker.67:27 Booking
Booking Ryan Shotton is shown a yellow card.67:07
Ryan Shotton concedes a free kick for a foul on Gareth Bale.66:11
Outswinging corner taken by Gareth Bale from the left by-line played to the near post, Kyle Walker takes a shot. Blocked by Ryan Shawcross.64:37
Unfair challenge on Aaron Lennon by Dean Whitehead results in a free kick. Direct strike on goal from the free kick comes in from Gareth Bale, Steven Nzonzi gets a block in.56:10
Tom Huddlestone takes a shot from just outside the penalty area clears the crossbar.56:01 Substitution
Substitution Cameron Jerome joins the action as a substitute, replacing Peter Crouch.56:01 Substitution
Substitution Andy Wilkinson comes on in place of Matthew Etherington.55:47
Effort from inside the area by Jan Vertonghen misses to the left of the goal.55:28
Foul by Robert Huth on Emmanuel Adebayor, free kick awarded. Emmanuel Adebayor takes the direct free kick.53:52
Gareth Bale takes a shot. Blocked by Dean Whitehead.50:12
The assistant referee signals for offside against Clint Dempsey. Asmir Begovic takes the indirect free kick.48:47
Inswinging corner taken by Gareth Bale, Shot from close range by Clint Dempsey clears the bar.48:32
Tom Huddlestone takes a shot. Blocked by Ryan Shawcross.48:14
Jan Vertonghen takes a shot. Ryan Shawcross gets a block in.47:02
Tom Huddlestone takes the free kick.46:18 Dismissal
Dismissal Charlie Adam shown a red card for second bookable offence.46:07
Free kick awarded for a foul by Charlie Adam on Jan Vertonghen.45:10
Steven Caulker gives away a free kick for an unfair challenge on Peter Crouch. Direct free kick taken by Charlie Adam.45:01
The game restarts for the second half.45:00 +2:12 Half time
Half Time The half-time whistle blows.45:00 +1:27
Corner taken left-footed by Charlie Adam from the right by-line, save made by Hugo Lloris.45:00 +1:10
Charlie Adam takes a shot. Scott Parker gets a block in.45:00 +0:33
The referee penalises Emmanuel Adebayor for handball. Charlie Adam takes the free kick.44:13
Gareth Bale takes a corner.43:57
Gareth Bale takes a shot. Save by Asmir Begovic.42:49
Hugo Lloris restarts play with the free kick.42:49 Booking
Booking Charlie Adam booked.42:31
Unfair challenge on Jan Vertonghen by Charlie Adam results in a free kick.41:19
Free kick awarded for a foul by Michael Dawson on Jonathan Walters. Dean Whitehead restarts play with the free kick.40:50
Peter Crouch concedes a free kick for a foul on Tom Huddlestone. Steven Caulker restarts play with the free kick.40:29 Booking
Booking Asmir Begovic goes into the book.38:17
The referee penalises Matthew Etherington for handball. Free kick taken by Gareth Bale. Michael Dawson takes a shot. Save by Asmir Begovic.36:38
Corner taken by Tom Huddlestone.35:48
Inswinging corner taken by Gareth Bale, Jonathan Walters manages to make a clearance.35:33
Emmanuel Adebayor takes a shot. Robert Huth gets a block in.34:07
Free kick taken by Kyle Walker.34:07 Booking
Booking Robert Huth goes into the referee's book for unsporting behaviour.33:51
Free kick awarded for a foul by Robert Huth on Gareth Bale.31:25
Steven Nzonzi gives away a free kick for an unfair challenge on Gareth Bale. Free kick taken by Emmanuel Adebayor.30:53
Gareth Bale is flagged offside by the assistant referee. Asmir Begovic restarts play with the free kick.30:26
Kyle Walker takes a shot. Charlie Adam gets a block in.29:55
Inswinging corner taken by Gareth Bale.25:47
Outswinging corner taken from the left by-line by Gareth Bale, Peter Crouch manages to make a clearance.21:17
Robert Huth concedes a free kick for a foul on Clint Dempsey. Gareth Bale shoots direct from the free kick.19:14 Goal scored
Goal! - Clint Dempsey - Stoke 1 - 1 Tottenham Clint Dempsey gets on the score sheet with a goal from outside the box to the bottom left corner of the goal. Stoke 1-1 Tottenham.17:46
Foul by Ryan Shotton on Emmanuel Adebayor, free kick awarded. Free kick crossed by Tom Huddlestone, save made by Asmir Begovic.15:09
The assistant referee signals for offside against Clint Dempsey. Indirect free kick taken by Asmir Begovic.13:35
Corner taken by Charlie Adam from the right by-line, clearance by Hugo Lloris.10:49
Effort from the edge of the penalty area by Gareth Bale goes wide of the left-hand post.6:18
Corner from left by-line taken by Tom Huddlestone.6:03
Gareth Bale takes a shot. Save by Asmir Begovic.5:19
Charlie Adam takes a shot. Blocked by Jan Vertonghen.4:13
The official flags Clint Dempsey offside. Asmir Begovic takes the indirect free kick.2:37
The assist for the goal came from Charlie Adam.2:37 Goal scored
Goal! - Steven Nzonzi - Stoke 1 - 0 Tottenham Steven Nzonzi finds the back of the net with a headed goal from inside the six-yard box. Stoke 1-0 Tottenham.1:44
Unfair challenge on Ryan Shotton by Clint Dempsey results in a free kick. Direct free kick taken by Charlie Adam.1:03
Free kick awarded for an unfair challenge on Tom Huddlestone by Peter Crouch. Michael Dawson takes the free kick.0:00
The ref blows the whistle to start the match.
Live data and text provided by our data suppliers