Bristol City produced a resolute away display to condemn Championship play-off rivals Middlesbrough to a fifth successive defeat and strengthen their own push for a place in the top six.
Boro, who have only won once at home in the league in 2019, were booed off the pitch at full-time, with some supporters chanting for manager Tony Pulis to be sacked.
His team had occupied a top-six spot since 9 August prior to Saturday's defeat by leaders Norwich City, but they are now two points adrift of the play-off places with seven matches to play.
Defender Adam Webster scored City's winner before half-time, rising highest to guide Jay Dasilva's corner past goalkeeper Darren Randolph.
Lee Johnson's side, who still have a game in hand on the majority of the teams around them in the table, are now fifth after back-to-back away wins at Sheffield United and Middlesbrough.
They were forced to withstand long periods of pressure at the Riverside but Boro, who have lost five league games in a row for the first time since 2013, could not find a breakthrough.
The hosts twice hit the woodwork, through Jonny Howson and Britt Assombalonga, while Robins defenders Bailey Wright and Tomas Kalas both cleared efforts off their own goalline.
Captain Wright managed to hook a header from Assombalonga - who had already had a goal disallowed for offside - away from danger, before Kalas prevented what looked a certain equaliser from Ashley Fletcher.
At the other end, Marlon Pack squandered Bristol City's best chance to kill the game when, having exchanged passes with Dasilva, he could only place his shot narrowly wide.
After propelling themselves into play-off contention with a seven-match winning sequence at the start of the year, five games without a victory before Saturday meant the Robins looked more likely to miss out.
But they were able to back up their eye-catching win at Bramall Lane with another fine victory on the road four days later and face Wigan Athletic at home in their next fixture.
Middlesbrough manager Tony Pulis: "We created five or six chances and even the free-kick we worked on this morning nearly came off.
"There is no way in a million years I can fault them for effort.
"We had 23 shots at goal tonight, 17 on Saturday. That is 40 in two games, I don't think I had that at Stoke for a whole season, never mind two games.
"Darren (Randolph) made a couple of great saves but all in all, there was only us and we needed that bit of luck."
Bristol City boss Lee Johnson: "I was delighted with the boys. We were like the young gunslingers coming here.
"We had to deal with a number of different situations and had a bit of luck.
"They could have scored two or three but then after we scored we could have had two or three more.
"The boys were outstanding to a man and I am so proud of the way they protected our goal with their lives."