Tyreeq Bakinson’s first-half goal gave Bristol City a 1-0 Sky Bet Championship win over Stoke at Ashton Gate.
It came on 38 minutes when Chris Martin headed on a Tomas Kalas long throw and midfielder Bakinson volleyed in from close range.
Stoke missed a catalogue of chances to extend a three-match winning streak and the injury-time sending off of Joe Allen for a second yellow card completed a frustrating night.
It was only Bristol City’s second home win since January, earned with a tenacious display against the odds.
Both managers named unchanged sides, Bristol City boss Nigel Pearson giving a second start to teenage midfielder Ayman Benarous.
In-form Stoke looked a yard quicker than their opponents in the opening exchanges and might have been two up inside five minutes.
With only 53 seconds on the clock, Steven Fletcher headed against a post from Mario Vrancic’s chip into the box.