Famara Diedhiou and Callum O'Dowda netted as Bristol City kept their Championship play-off hopes alive with a 2-0 victory at Stoke.
Diedhiou superbly headed home Jack Hunt's cross in the first half against the run of play.
And O'Dowda wrapped the points up with nine minutes to go after he made the most of a defensive mix-up.
It could have been a different story for Gary Rowett's men had Benik Afobe managed to convert a sixth-minute penalty.
But the Potters failed to really get going from that point as a series of decent chances came and went before they were hit with a sucker punch.
Afobe was given a glorious chance to put Stoke ahead after Bruno Martins Indi was brought down in the box.
But Niki Maenpaa made a superb save low to his left to keep out the penalty.
James McClean fired wide after he burst past a number of defenders to create an opening in the 13th minute.
Tom Ince failed to trouble Maenpaa with a curling effort from the edge of the box as Stoke continued to dominate.
Ince then fired a tame shot straight at the goalkeeper following good link-up play with McClean on the half hour.
City were ahead nine minutes later when Diedhiou powered a header from Hunt's cross past Jack Butland for his seventh goal of the season.
Stoke were unable to make the most of a 51st-minute corner after a good run down the wing by Ince.
Afobe saw his header from 12 yards deflected for another corner a minute later as the home side once again got into their stride.
And the striker was inches away from connecting with another McClean cross after 58 minutes.
It was his last action of the contest with Stoke bringing on former England international Peter Crouch as they looked to make the volume of crosses finally pay off.
Bailey Wright produced a brilliant last-ditch tackle as McClean prepared to pull the trigger.
Jamie Paterson missed a chance to double the visitors' lead when he fired well wide in the 65th minute after getting into the box.
But it was game over when O'Dowda netted after Stoke failed to clear Hunt's cross with nine minutes remaining.
Saido Berahino hit the crossbar for Stoke a minute later but it was too little too late.