Sheffield United manager Chris Wilder was happy with his side’s committed and positive display but bemoaned their inability to convert chances.
Wilder said: “It’s the worst feeling in the world when you play well and lose, as we did. But we failed to make the most of the periods when we were on top.
“We should have come in at half-time, not one, but probably two-up. Any manager will tell you that the first goal in Championship games is so important and we should have got it.
“That would have meant them having to chase the game. Instead, it was the other way around and we were not as careful in possession trying to get back into the match after they had scored.
“It was a very good away performance without the most important bit, which is winning the game.
“They paid us the compliment of changing their system around, while on a decent run in a very competitive division.
“If you don’t play well and lose or the other side do so well you can’t lay a glove on them, you accept it. Today we have played well enough to win, but have not done enough in the opposition box.”
Lee Johnson gave all the credit to his Bristol City players after his game plan had worked to perfection.
The head coach admitted to “having sleepless nights” about switching from his normal 4-4-2 formation to match the Blades’ wing-back system after a run of three successive wins.
But it snuffed out the free-scoring visitors to such an extent that Niki Maenpaa did not have a testing save to make at Ashton Gate and an 81st-minute header from substitute Marley Watkins bagged another three points.
Wilder was not sure Watkins was aiming for goal when his glancing header from a right-wing cross by fellow substitute Callum O’Dowda sneaked in at the far post but he admitted it was a fine goal from City’s perspective.
David McGoldrick missed the best of United chances in the first half. As the visitors got into their stride, Billy Sharp teed up McGoldrick on the edge of the area for a shot that was badly miscued wide.
Oliver Norwood’s free-kick from a narrow angle flashed across City’s goal on 25 minutes, with a defender deflecting it for a corner.
McGoldrick shot wide again following an error from Tomas Kalas and then he glanced a header the wrong side of a post from another free-kick from Norwood.
City’s best period came in the final 20 minutes when they might have netted more than once.
A fourth successive win for Johnson’s men lifted them to third in the table and he said: “It doesn’t matter what game plan you employ if the players do not carry it out – and today they did it to perfection.
“Switching things around was not a decision I took lightly, but I felt it was right to set up to match Sheffield United because of their quality. They create very good overloads down both channels so we had to work on nullifying that and going toe-to-toe athletically with each individual opponent.
“The key point to recognise is that they have been getting off more shots, putting in more crosses and passes into the box than any team in the Championship.
“We have talked about getting a depth in defensive areas and we are starting to get that. It was a big performance and a big win for us.
“Our substitutes turned the game on its head. We brought fresh legs on and it made a difference.”
Bristol City: Maenpaa, Hunt, Webster, Kalas, Kelly, Dasilva (Watkins 62), Eliasson (O’Dowda 62), Pack, Brownhill, Diedhiou (Taylor 78), Weimann. Unused substitutes: Baker, Walsh, Paterson, O’Leary.
Sheffield United: Henderson, Basham, Egan, O’Connell, Freeman, Norwood, Lundstram (Clarke 83), Stevens, Duffy (Washington 68), McGoldrick, Sharp (Johnson 68). Unused substitutes: Baldock, Woodburn, Stearman, Moore.
Referee: J Brooks (Leicestershire).