Match ends, Swansea City 3, Stoke City 3.
Charlie Adam's stoppage-time penalty earned Stoke a draw in a dramatic game at Swansea.
Jonathan Walters had given the visitors an early lead, surging through some weak tackling, before Stephen Ireland added a classy second on the counter.
Wilfried Bony's close-range header started Swansea's fightback before Nathan Dyer rifled home to level.
Bony then converted Jonjo Shelvey's cross before Stoke were given a penalty for handball and Adam held his nerve.
Adam's late intervention was particularly timely for Stoke manager Mark Hughes, who was beginning to come under pressure following a run of seven Premier League games without victory which had seen the Potters slip into the bottom three.
Swansea, starting just two points and four places above their visitors, were also short of victories and eager to banish memories of last week's derby defeat at Cardiff - a result which was sandwiched by two Europa League draws against Kuban Krasnodar.
Michael Laudrup's men had conceded last-minute equalisers in both of those encounters against Russian side Kuban, and to see it happen again against Stoke will add to the Swansea manager's frustration.
Stoke's difficulty in finding the back of the net this season was emphasised last week when goalkeeper Asmir Begovic become joint-top scorer at the club after his fluke goal against Southampton.
But it took just eight minutes for the visitors to take the lead at the Liberty Stadium through Walters, playing in his 100th consecutive Premier League game.
Swans captain Ashley Williams was off the pitch receiving treatment at the time and Walters made the most of the extra space left by the centre-back's temporary absence, surging between Chico Flores and Ben Davies to shoot across Gerhard Tremmel - deputising for the suspended Michel Vorm - into the far corner.
Roland Lamah could have put Swansea level only to head straight at Begovic, while the Stoke keeper had earlier done well to turn Alejandro Pozuelo's shot around the post.
Stoke's midfield was working hard to break up Swansea's attacks and while not always successful, they were often swift on the counter-attack.
And that earned the visitors a second goal before the half-hour mark as Peter Crouch swept the ball out to Walters on the right, received the return and then played Ireland through. The ex-Manchester City and Aston Villa midfielder did well to bring the ball down with his right foot and then volley past Tremmel with his left.
Bony, leading Swansea's attack in the absence of injured Spain striker Michu, should have started the recovery when he was through on goal.
The Ivorian hesitated long enough for Begovic to dive at his feet to slap the ball away, with the keeper bouncing up to palm away Wayne Routledge's follow-up.
But Bony made amends soon after half-time when Jonathan de Guzman whipped in an inviting cross for the striker to head home from close range.
Dyer had come on for Lamah and his cross nearly conjured a second for Bony, who saw his audacious back-heel blocked.
But the little Swansea winger's next contribution was even more telling as he claimed the equaliser.
Routledge's cross from the left was only half-cleared to Dyer on the penalty spot, who hit his shot into the ground but past the diving Begovic.
With five minutes remaining Bony struck again as substitute Shelvey tricked his way down the left before crossing for the striker to shoot left-footed under Begovic.
However, there was still one last twist remaining in stoppage time as referee Robert Madley ruled that Routledge had handled in the area.
Swansea's players were furious - and Routledge did appear to have his arms by his sides - but Adam stepped up to convert the resulting penalty and rescue a point for Stoke.
- 22RangelBooked at 81mins
- 4Flores MorenoBooked at 34mins
- 6WilliamsBooked at 60mins
- 15RoutledgeBooked at 90mins
- 20De GuzmánSubstituted forShelveyat 71'minutes
- 24Pozuelo MeleroSubstituted forCañas Ruiz Herreraat 90+3'minutes
- 14LamahSubstituted forDyerat 55'minutesBooked at 90mins
- 21Cañas Ruiz Herrera
- 26Vázquez García
- 1BegovicBooked at 90mins
- 8PalaciosSubstituted forAdamat 72'minutesBooked at 80mins
- 4HuthBooked at 36mins
- 32IrelandSubstituted forWilsonat 72'minutes
- 10ArnautovicSubstituted forEtheringtonat 54'minutes
- Robert Madley
- Shots on Target
Second Half ends, Swansea City 3, Stoke City 3.
Goal! Swansea City 3, Stoke City 3. Charlie Adam (Stoke City) converts the penalty with a left footed shot to the bottom left corner.
Penalty conceded by Wayne Routledge (Swansea City) with a hand ball in the penalty area.
Attempt blocked. Robert Huth (Stoke City) header from the centre of the box is blocked. Assisted by Charlie Adam with a cross.
Corner, Stoke City. Conceded by José Cañas.
Hand ball by Angel Rangel (Swansea City).
Substitution, Swansea City. José Cañas replaces Álex Pozuelo.
Wayne Routledge (Swansea City) is shown the yellow card.
Asmir Begovic (Stoke City) is shown the yellow card.
Foul by Álex Pozuelo (Swansea City).
Robert Huth (Stoke City) wins a free kick in the defensive half.
Nathan Dyer (Swansea City) is shown the yellow card.
Attempt missed. Jonathan Walters (Stoke City) header from the centre of the box is high and wide to the right. Assisted by Ryan Shawcross with a headed pass following a set piece situation.
Foul by Wilfried Bony (Swansea City).
Ryan Shawcross (Stoke City) wins a free kick in the defensive half.
Goal! Swansea City 3, Stoke City 2. Wilfried Bony (Swansea City) left footed shot from the centre of the box to the bottom right corner. Assisted by Jonjo Shelvey.
Nathan Dyer (Swansea City) wins a free kick on the right wing.
Foul by Erik Pieters (Stoke City).
Offside, Swansea City. Jonjo Shelvey tries a through ball, but Wilfried Bony is caught offside.