Stoke clinched a vital point in their battle for Premier League survival by drawing 2-2 with Aston Villa on Sunday.
The Potters were two goals behind when Stiliyan Petrov opened proceedings in the first half with a right-foot blast, before substitute John Carew looked to have sealed the points for Villa with an absolute cracker on 79 minutes.
But Stoke got a goal back with three minutes of normal time left when Ryan Shawcross headed in James Beattie's cross.
And Tony Pulis' side rescued what could be a valuable point come the end of the season when substitute Glenn Whelan's superb drive from 20 yards out nestled in the bottom corner in the 90th minute.
The result brings Stoke level on points with Middlesbrough and Blackburn who both secured victories this weekend, while Villa will see two points dropped as they edge six points clear of fifth-placed Arsenal.
The home side made a positive start and James Milner sent in a teasing cross which was headed back across goal by Gareth Barry but Gabriel Agbonlahor was crowded out by several Stoke defenders.
Potters goalkeeper Thomas Sorensen saved bravely at the feet of Agbonlahor at close range from a low cross by Ashley Young before Danny Higginbotham cleared the loose ball which was heading for the empty net.
Shawcross blocked a close-range effort from Emile Heskey as the visitors concentrated on keeping Villa at bay, and the Stoke defender became the first player to be yellow-carded after 30 minutes for a tackle from behind on the England striker.
He was only inches away from connecting with a low cross from Barry after good play by Milner before Ibrahima Sonko completed the clearance under pressure from Agbonlahor.
Villa centre-back Zat Knight was just too high with a glancing header from an inswinging centre by Milner.
Ashley Young was booked for dissent after 34 minutes for disputing the award of a throw-in to Stoke after battling for the ball with the competitive Andy Wilkinson and then Petrov tried his luck from 30 yards out, but his left-footed drive flew well wide of Sorensen's goal.
But in the 45th minute the Bulgarian finally broke the deadlock for Villa with his second goal of the campaign.
Milner was the creator with a pass into the path of the former Celtic midfielder who crashed a fierce drive across Sorensen into the corner of the net.
It was his first league goal since his spectacular effort from the halfway line during Villa's 6-0 triumph over Derby at Pride Park last April.
Heskey had a header saved in first-half injury time by Sorensen from another Milner centre.
Second-half thrillerStoke manager Tony Pulis was forced into a half-time switch with Sorensen, who had taken a knock on his forearm in the first half, replaced by Steve Simonsen.
Pulis waited only eight minutes of the second half to make another change with striker Ricardo Fuller, who had recovered from a shoulder injury, replacing midfielder Danny Pugh.
Villa were largely on top but Luke Young needed to produce an excellent tackle to deny Fuller at the expense of a corner after he had burst into the Villa box.
It was a warning to the home side that they could take nothing for granted while their lead remained a slender one.
The introduction of Fuller had given Stoke more bite up front and he was only just too high with a volley from the edge of the Villa box.
O'Neill brought on Carew for Heskey after 75 minutes - and within four minutes he looked to have wrapped up the points in spectacular fashion.
Petrov played the ball into the Norway international who volleyed past Simonsen from 20 yards out.
Agbonlahor then miskicked with the goal at his mercy from a Carew centre while Whelan struck a post for Stoke.
It was a warning of what was to come for Villa as Shawcross pulled a goal back in the 87th minute with a header from a Beattie centre.
And then in the first minute of time added on, Whelan drilled a shot past the dive of Brad Friedel from the edge of the box.