Match ends, Sheffield United 1, Bristol City 2.
Aden Flint's late winner earned Bristol City a valuable victory against 10-man Sheffield United in an absorbing Championship contest at Bramall Lane.
The Blades hit the woodwork three times in the first half but Jamie Paterson's superb strike put Bristol City ahead.
Leon Clarke drilled in the home side's equaliser after the break, before the post denied winger Mark Duffy again.
John Fleck was then sent off for a two-footed challenge on City's Korey Smith, and Flint volleyed in on 90 minutes.
Victory was third-placed Bristol City's third in succession, moving them to within three points of the top two, while fourth-placed United's winless run stretched to four matches - their longest in the league since August 2016.
However, Chris Wilder's side were unfortunate not to net several times before Paterson sweetly struck the opener from the edge of the area.
A curling Duffy free-kick bounced back off the post, before returning Blades captain Billy Sharp placed on to the top of the crossbar and then was denied by a superb save, as Frank Fielding tipped his header from a corner on to the bar.
Clarke, the Championship's top scorer, netted his 14th of the season before Fleck's off-the-floor lunge saw the hosts reduced to 10 men.
Lee Johnson's side capitalised in dramatic fashion, as centre-back Flint - unmarked at the far post - volleyed in his sixth league goal of the season to reaffirm the Robins' status as genuine promotion contenders.
Sheffield United manager Chris Wilder:
"It's a cruel game at times. I didn't think we deserved the defeat. I thought we did more than enough to win against a really good side that's going well.
"We showed everybody in this division that we're a decent side when we play as I know we can and we're a match for anyone.
"Things aren't really going for us but we've just got to keep going. Sometimes fortune doesn't favour the brave."
On the sending-off, Wilder added: "The game has gone if you can't tackle like that now.
"That was just a proper tackle and I don't think it deserves a red card."
Bristol City head coach Lee Johnson:
"It was a great win, first and foremost, and I'm delighted with the points.
"I thought Sheffield United were outstanding and they were certainly the better side for the first 55 to 60 minutes. I had to change the shape three times and that was due to Sheffield United's relentless quality.
"My boys stuck in. It was about dealing with the atmosphere and dealing with the quality.
"We got a bit of fortune with the sending-off. It probably was a sending-off and once they went down to 10 men, I thought we controlled the game."
- 6BashamSubstituted forCarruthersat 86'minutes
- 21DuffySubstituted forBrooksat 77'minutes
- 4FleckBooked at 59mins
- 3StevensBooked at 43mins
- 10SharpSubstituted forDonaldsonat 80'minutes
- 19EliassonSubstituted forDjuricat 45'minutesBooked at 55mins
- 21PackSubstituted forLekoat 76'minutes
- 20PatersonBooked at 90mins
- 7SmithSubstituted forTaylorat 62'minutes
- 14ReidBooked at 90mins
- David Coote
- Shots on Target
Second Half ends, Sheffield United 1, Bristol City 2.
Jamie Paterson (Bristol City) is shown the yellow card for a bad foul.
Foul by Jamie Paterson (Bristol City).
Samir Carruthers (Sheffield United) wins a free kick in the defensive half.
Matty Taylor (Bristol City) wins a free kick on the left wing.
Foul by George Baldock (Sheffield United).
Bobby Reid (Bristol City) is shown the yellow card.
Foul by Bailey Wright (Bristol City).
Clayton Donaldson (Sheffield United) wins a free kick on the left wing.
Goal! Sheffield United 1, Bristol City 2. Aden Flint (Bristol City) right footed shot from the centre of the box to the bottom left corner. Assisted by Bobby Reid with a cross.
Jamie Paterson (Bristol City) wins a free kick in the defensive half.
Foul by David Brooks (Sheffield United).
Attempt blocked. Richard Stearman (Sheffield United) left footed shot from the centre of the box is blocked. Assisted by David Brooks with a cross.
Corner, Sheffield United. Conceded by Bailey Wright.
Corner, Bristol City. Conceded by George Baldock.
Attempt missed. Jonathan Leko (Bristol City) right footed shot from outside the box is high and wide to the right. Assisted by Joe Bryan.
Substitution, Sheffield United. Samir Carruthers replaces Chris Basham.
Substitution, Sheffield United. Clayton Donaldson replaces Billy Sharp.
Substitution, Sheffield United. David Brooks replaces Mark Duffy.