Jacob Brown scored a second-half winner as Stoke came from behind to secure a 2-1 Sky Bet Championship victory over Bristol City at Ashton Gate.
The hosts took a 33rd-minute lead when Cameron Pring tricked his way to the byline on the left and fired in a fierce cross which Nahki Wells converted from close range for his eighth goal of the season.
But Stoke were level in first-half stoppage time when Liam Delap capitalised on a defensive mix-up involving centre-back Andy King to fire low past Max O’Leary from 10 yards.
The Potters went in front 12 minutes after the break through Brown’s low drive from an angle inside the box after good work from Josh Tymon and Tyrese Campbell.
From then on they defended manfully to clinch the points against a Robins side lacking quality in both boxes.
The first 20 minutes passed without either side registering a goal attempt. The first came from Stoke’s Brown but his weak header was straight at O’Leary.
Bristol City finally came to life after 24 minutes when Alex Scott had a shot saved by Jack Bonham from Andreas Weimann’s pass.
Zak Vyner was off target from 25 yards and Wells had a shot from a narrow angle blocked by Bonham as the home side stepped up the pressure.
Weimann almost broke the deadlock from a clever Wells chip into the box after 31 minutes but his volley came back off a post.
Bristol City were in front two minutes later. They failed to build on their advantage before the break, but it was still a surprise when Stoke levelled through some dreadful defending.
A scrappy start to the second half saw Bristol midfielder Joe Williams head wide of the near post from a Weimann cross.
Brown scored from Stoke’s first meaningful attack after the break and suddenly Nigel Pearson’s men were facing an uphill battle. The manager responded by making a change up front, with Antoine Semenyo replacing Tommy Conway.
Bristol City claimed for a penalty when Semenyo went down inside the box, but referee Geoff Eltringham was unmoved. Then Weimann had a shot blocked as the visitors came under heavy pressure.
King headed wide from a Kal Naismith free-kick as the Robins fought to get level. But Stoke were proving resilient, with the vastly-experienced Phil Jagielka marshalling their backline.
Brown might have sealed victory in the 89th minute when breaking clear from inside Bristol City’s half, only to shoot over after a lung-bursting run.
At the other end, substitute Mark Sykes had a low shot saved by Bonham as Stoke held out for a hard-earned win, with sections of the home fans booing their team off.