On-the-whistle report: Bristol City 1 Rotherham United 0
The Millers were light on numbers after Billy Jones and then Richie Towell were ordered from the field yet looked to be holding out for a famous away draw.
Advertisement
Hide AdAdvertisement
Hide AdBut Adam Webster headed Bristol City in front in the 86th minute, leaving Paul Warne's men in the Championship relegation places for the first time this season.
Right-back Jones went for a second yellow card on 64 minutes after two fouls while Towell departed with a straight red for a bad tackle eight minutes later on Josh Brownhill.
Rotherham weathered some first-half pressure but always looked a threat on the break and finished the opening period on top.
Advertisement
Hide AdAdvertisement
Hide AdJon Taylor, having seen a 26th-minute attempt saved, came closest to giving the Millers the lead, forcing a good stop from Niki Maenpaa when he ran in behind Michael Smith in the 38th minute and shot from the right.
The little winger was proving a real threat and should have done better close to the interval than fire off target when Maenpaa was out of position after punching a Will Vaulks cross.
Before then, Rotherham goalkeeper Marek Rodak parried a 10th-minute Famara Diedhiou header while Billy Jones' superb block thwarted Jamie Paterson after Josh Brownhill's 31st-minute effort was too hot for Rodak to gather.
Advertisement
Hide AdAdvertisement
Hide AdAfter the break, before the red-card drama unfolded, Ben Wiles, on his first Millers league start, shot wide on the turn.
Jones was unlucky to be cautioned for his second offence but Towell could have no complaints about his dismissal.
With Rotherham down to nine, Rodak denied Brownhill and Diedhiou headed wide before Webster's decisive intervention.
Advertisement
Hide AdAdvertisement
Hide AdThe visitors did well to keep the score down in the closing stages as the Robins took advantage of their numerical advantage.
Bristol (4-1-4-1): Niki Maenpaa; Jack Hunt, Tomas Kalas, Adam Webster, Jay Dasilva; Marlon Pack; Callum O'Dowda, Jamie Paterson, Josh Brownhill, Hakeeb Adelakun; Famara Diedhiou. Not used: Max O'Leary, Bailey Wright, Lloyd Kelly, Joe Morrell.
Subs: Matty Taylor (for Adelakun, 59 minutes), Niclas Eliasson (for Dasilva 77), Andreas Weimann (for O'Dowda, 79).
Advertisement
Hide AdAdvertisement
Hide AdRotherham (4-5-1): Marek Rodak; Billy Jones, Semi Ajayi, Clark Robertson, Joe Mattock; Jon Taylor, Ben Wiles, Will Vaulks, Richie Towell, Ryan Williams; Michael Smith. Not used: Lewis Price, Richard Wood, Matt Palmer, Joe Newell.
Subs: Sean Raggett (for Wiles, 67), Ryan Manning (for Williams, 77), Anthony Forde (for Taylor, 83).
Goals: Webster 84 (Bristol City).
Referee: Scott Duncan (Northumberland).
Attendance: 21,207 (550).