Daniel Ayala’s header 22 minutes from time earned the win after George Friend had cancelled out Milan Djuric’s ninth-minute opener. The triumph moved Boro up to fifth after defeat at Sheffield United had seen them drop out of the top six.
“First half at Sheffield United wasn’t good enough, the application and desire was very poor, second half was fantastic,” said Pulis.
“We’ve spoken about it, not getting uptight, and that’s what the players have to do, embrace the challenge.
“They’re fortunate lads. These are great games to play in and manage and that’s the attitude they must have, roll your sleeves up, puff your chest out and work your socks off when you don’t have the ball. We did that.”
Middlesbrough face play-off rivals Derby and Millwall in succession and they will have to wait to see if Patrick Bamford will be fit.
There were 11 minutes of added time at the end of the first half after Bamford was laid out after a challenge from Aden Flint.
Pulis said: “Patrick’s in the dressing room taking some stick off the players so he’s fine. He went down either winded or he’s hit his head, but he’s fine.
“I’ve not spoken to him or the physios, I’ve just hammered him for being soft. Only joking. I have hammered him, though.”
Bristol are four points off the play-off pace, but manager Lee Johnson believes they can still get there.
Middlesbrough: Randolph, Shotton, Ayala, Gibson, Friend, Howson, Clayton, Besic, Traore (Cranie 90), Bamford (Assombalonga 34), Downing (Da Silva 88). Unused substitutes: Konstantopoulos, Fry, Harrison, Baker.
Bristol City: Fielding, Bryan, Flint, Baker, Kelly (O’Dowda 67), Brownhill, Pack, Smith, Reid, Djuric (Pisano 46), Diedhiou (Taylor 67). Unused substitutes: Steele, Eliasson, Magnusson, O’Neil.
Referee: A Madley (West Yorkshire).