Match ends, Bristol City 0, Stoke City 1.
Darren Fletcher scored the winner as Stoke City beat Bristol City to register their first win in three matches.
The 34-year-old former Manchester United midfielder lashed home from close range after the Robins defence failed to clear Benik Afobe's cross.
Famara Diedhiou twice headed against the crossbar for Bristol City, while Thomas Edwards' superb covering challenge also denied the Senegal forward a tap-in.
But Stoke were able to withstand heavy late pressure - mainly thanks to Bristol-born goalkeeper Jack Butland - to secure a fifth Championship victory of the season.
Gary Rowett's inconsistent Potters have now moved up to 13th in the table, five points off the play-offs.
The Robins did nearly snatch an equaliser right at the death, but Marlon Pack's header was superbly beaten away by Butland, who also kept Niclas Eliasson's strike at bay.
The hosts had won each of their last two games with last-gasp goals and were unfortunate not to at least come away with a point against Stoke, who were also thankful for Butland's super show to deny Tomas Kalas before half-time.
Bristol City head coach Lee Johnson told BBC Radio Bristol:
"I just feel like, with all the will in the world, we couldn't put the ball over the line.
"I was disappointed with the first half, I didn't think we showed enough intensity to go forward. We need to improve that and our team need to understand we cannot waste minutes.
"The second half was fantastic, the personality of the team was brilliant and we were aggressive, but our only criticism is our finishing.
"Whether that was better finishing or technique, we will really have to have a look at."
Stoke City manager Gary Rowett told BBC Radio Stoke:
"I think it was a cliché game of two halves. I thought first half we were excellent, for an away team to come to difficult place like Bristol.
"I thought we had total control for the first half. We scored a very, very good goal through Darren Fletcher, [he] took it really well.
"Second half of course they had an opportunity to change their system and we dropped in too far and that's always the temptation when you go a goal up.
"We had to effectively hang on. That's when you want your back four, your five in the end, and you want Jack to show that quality and he couldn't have done it anymore today.
"He's made two world class saves. I was really pleased with it."
- 17KellySubstituted forDasilvaat 45'minutes
- 8BrownhillBooked at 55minsSubstituted forTaylorat 70'minutes
- 11O'DowdaSubstituted forWalshat 45'minutes
- 15Martins IndiBooked at 85mins
- 24FletcherSubstituted forAdamat 42'minutesBooked at 68minsSubstituted forMcCleanat 70'minutes
- 19BerahinoSubstituted forShawcrossat 87'minutes
- Andy Madley
- Shots on Target
Second Half ends, Bristol City 0, Stoke City 1.
Corner, Stoke City. Conceded by Jay Dasilva.
Corner, Stoke City. Conceded by Max O'Leary.
Attempt saved. Benik Afobe (Stoke City) right footed shot from the centre of the box is saved in the top right corner. Assisted by Tom Ince.
Attempt blocked. Marlon Pack (Bristol City) header from the centre of the box is blocked. Assisted by Liam Walsh with a cross.
Foul by Matty Taylor (Bristol City).
Tom Ince (Stoke City) wins a free kick in the defensive half.
Corner, Stoke City. Conceded by Tomas Kalas.
Attempt missed. Marlon Pack (Bristol City) header from very close range is close, but misses to the right. Assisted by Niclas Eliasson with a cross following a corner.
Corner, Bristol City. Conceded by Jack Butland.
Attempt saved. Niclas Eliasson (Bristol City) right footed shot from the centre of the box is saved in the bottom right corner. Assisted by Famara Diedhiou.
Attempt blocked. Niclas Eliasson (Bristol City) left footed shot from the centre of the box is blocked. Assisted by Jamie Paterson.
Substitution, Stoke City. Ryan Shawcross replaces Saido Berahino.
Offside, Stoke City. Thomas Edwards tries a through ball, but Benik Afobe is caught offside.
Bruno Martins Indi (Stoke City) is shown the yellow card.
Attempt missed. Marlon Pack (Bristol City) right footed shot from outside the box is close, but misses to the right. Assisted by Liam Walsh.
Corner, Bristol City. Conceded by Erik Pieters.
Jack Hunt (Bristol City) wins a free kick in the attacking half.
Foul by Tom Ince (Stoke City).