Richard Dunne's first-half goal was enough for Manchester City to record their first win in four games.
Dunne scored his first goal of the season to seal victory for City
The City skipper rose to head in Joey Barton's corner on 24 minutes to lift the pressure on boss Stuart Pearce.
Pearce included Ben Thatcher in his starting line-up after his eight-match ban, but the defender was virtually untroubled as the visitors toiled.
Boro substitute Massimo Maccarone hit the post twice late on but City held on for a welcome win.
They did so in front of a crowd of 36,720, the lowest for a City Premiership home game since they left Maine Road in 2003.
Those who opted to stay at home will not be regretting their decision after this uninspiring affair.
Before the game, Pearce had hit out at the "farcical" pressure on Premiership managers following a week in which he had come under fire for City's 4-0 defeat at Wigan.
If he wanted to deflect attention away from himself, he did so by including Thatcher in his team for the first time since the defender's horrifying challenge on Portsmouth's Pedro Mendes on 23 August.
Thatcher, though, was anonymous in the first half as Boro struggled to impose themselves on the game.
City made a predictably nervous start but they sprung to life when Paul Dickov raced down the left channel, only to see his chip over keeper Mark Schwarzer go wide.
Moments later, Georgios Samaras burst clear down the opposite side but Schwarzer denied the Greek striker from a tight angle.
The pressure told only a minute later when Dunne, who had endured a torrid time against Wigan, rose to head in Barton's corner.
Boro desperately needed to improve after the break, and they did - if only slightly.
However, with Yakubu and Jason Euell struggling to form a cohesive partnership up front, the visitors were always looking to pick up scraps.
Meanwhile, Dickov was demonstrating the determination that had been so lacking in City's capitulation against Wigan.
The diminuitive Scot was inexplicably penalised when he appeared to be fouled by Emanuel Pogatetz and was booked for his protests.
But shortly after, the striker almost created the second goal when he won the ball on the right and fed Trevor Sinclair, but the winger's pass to Samaras lacked pace and Boro were able to clear.
A turgid game provided some welcome entertainment in the closing minutes, with Darius Vassell squandering two good chances to wrap up victory for City.
At the other end, Maccarone hit the same post twice - meaning Boro still ended the game without a shot on target.
Manchester City manager Stuart Pearce on the recent media speculation over his job:
"I've had no pressure internally, from the fans or chairman.
"It comes from the media and it's good for coverage, but it wears a bit thin.
"We know what we've got to do and I'll be judged come May. The players put themselves under pressure after Wigan, but I have to admire their character."
Middlesbrough boss Gareth Southgate:
"I thought City were there to be beaten but we didn't start well enough and didn't deserve to win the game in the end.
"We had a good go at the end and might have nicked a goal but it's debatable whether we would have deserved it.
"We seemed a bit lifeless in the first half which is not something I expect. It's disappointing to say the least."
Man City: Weaver, Richards, Dunne, Distin, Thatcher, Beasley (Vassell 71), Barton, Reyna (Trabelsi 80), Sinclair, Dickov (Corradi 85), Samaras.
Subs Not Used: Hart, Hamann.
Booked: Dickov, Barton.
Goals: Dunne 23.
Middlesbrough: Schwarzer, Parnaby (Bates 22), Woodgate, Huth, Pogatetz, Euell, Cattermole (Morrison 66), Boateng, Rochemback (Maccarone 74), Downing, Yakubu.
Subs Not Used: Turnbull, Arca.
Booked: Pogatetz, Huth, Rochemback, Boateng.
Ref: H Webb (S Yorkshire).