Swansea City suffered more Liberty Stadium frustration as they failed to build on a perfect start to lose to Stoke.
Steve Cooper’s side had led inside a minute as Andre Ayew scored his second goal in four days, and they had a number of chances to extend that advantage over the opening 20 minutes.
But they were pegged back when Sam Clucas volleyed home after Joe Allen’s surge into the Swansea area.
From that point on Swansea were unable to reach the levels of their bright start and Stoke snatched their first win of the season when substitute Scott Hogan tapped in from close range in the final minute.
The result sees the Swans cede top spot to West Brom going into the second international break of the season, and they are now without a win in their last three games on home turf having lost to Nottingham Forest and conceded a last-gasp equaliser to Reading.
Swansea had conceded after just 66 seconds at Charlton in midweek, but they were off the mark in under a minute here as Ayew netted with just 53 seconds on the clock.
Yan Dhanda had raced onto Borja Baston’s lay-off and got away a strike at goal, but Adam Federici’s save fell for the Ghanaian to finish from close range.
Ayew cut a threatening ball across goal just a few moments later with the visitors all at sea defensively.
Borja was denied by Federici as Swansea laid siege to the Stoke area in search of a rapid second.
The overworked Federici made another stop as Ayew hit a volley intro the ground from Bersant Celina’s cross.
But Stoke responded with Freddie Woodman saving superbly as Lee Gregory’s strike headed for the far corner.
Swansea were then forced into an early change as Kyle Naughton was forced off by injury, to be replaced by Jake Bidwell, after just 15 minutes.
And they suffered a further blow when they were pegged back on 21 minutes. Joe Allen got into the area far too easily, Woodman saved his effort but could do nothing to keep out the follow-up from Clucas.
It took a few minutes for Swansea to settle after conceding, but they then produced a flowing attack that ended with Celina firing over the bar from the edge of the box.
Borja glanced a header wide five minutes before the break but there was no denying Swansea’s frustrations as they struggled to re-assert themselves having dominated up to the equaliser.
And Stoke nearly took the lead before the break, Woodman parrying a Bruno Martins Indi header and Gregory could only find the side-netting from close range.
The visitors went close again upon the resumption, Peter Etebo’s shot taking a deflection and smacking against the crossbar.
When Swansea did produce a threatening attack, Celina ignored Jay Fulton and Connor Roberts in support and his attempted pass for Ayew was cut out.
Clucas nearly got a second at the other end, but was denied by pressure from Roberts at the far post and the Wales full-back – in the thick of the action – then volleyed just over the as Federici scrambled.
Gregory then missed a sitter after the Swans had got themselves in a muddle at the back, firing tamely at Woodman when he should have given the visitors the lead.
Cooper sent on George Byers and Wayne Routledge for Fulton and Celina, and Routledge soon worked Federici after Stoke failed to clear a corner.
Into the final 20 minutes and Roberts could not connect cleanly with a lovely ball from Dhanda which picked out his run at the far post.
Swansea then forced a succession of corners, with Byers, Routledge and Borja all having efforts blocked by a resolute Stoke defence.
And it was the Potters who took the spoils when Hogan found the net after Woodman had made a great save to keep out a header.
Swansea City: Freddie Woodman; Connor Roberts, Mike van der Hoorn, Joe Rodon, Kyle Naughton (Jake Bidwell 16); Jay Fulton (George Byers 62), Matt Grimes (captain); Andre Ayew, Yan Dhanda, Bersant Celina (Wayne Routledge 66); Borja Baston.
Subs not used: Erwin Mulder, Tom Carroll, Jordon Garrick, Sam Surridge.
Stoke City: Adam Federici, Tom Edwards, Joe Allen (captain), Danny Batth, Peter Etebo, Cameron Carter-Vickers, Bruno Martins Indi, Lee Gregory (Scott Hogan 65), Sam Clucas, Tyrese Campbell (Sam Vokes 65), Badou Ndiaye.
Subs not used: Jack Butland, Liam Lindsay, Tom Ince, Nick Powell, Mark Duffy.
Referee: Oliver Langford