Two late goals from Britt Assombalonga and Djed Spence denied City a point after a well-fought defensive display.
Assombalonga gave Boro the lead with less than ten minutes remaining before City were caught out again whilst searching for an equaliser in added time.
Mark Robins made three changes from the side that started against Blackburn Rovers. Leo Ostigard was recalled to defence in place of the suspended Michael Rose, whilst Gustavo Hamer and Jordan Shipley returned to the team, with Liam Kelly and Callum O’Hare among the substitutes.
Both teams were evenly matched throughout the early parts of the first-half, producing an end-to-end game that was without many clear-cut chances. Middlesbrough captain Britt Assombalonga had the first real chance of the match on 9 minutes, firing over the bar from a free-kick on the edge of the box.
Assombalonga had another chance to put the hosts in front, ten minutes later, as he threatened to get on the end of a dangerous Marcus Tavernier cross from the left, after a dangerous run from Patrick Roberts. Marko Marosi closed down the Boro striker to deny the chance before Sam Morsy fired the loose ball wide.
Again, it was Tavernier who threatened to open the scoring, cutting in from the right to fire a dipping shot towards the Sky Blues goal that Marosi comfortably parried clear.
Boro’s threat from the flanks continued as a deft pass from midfield led Paddy McNair to initially run in behind the Sky Blues defence. However, his progress was thwarted thanks to a timely challenge from Leo Ostigard.
HALF-TIME: MIDDLESBROUGH 0-0 SKY BLUES
Moments into the second half Jamie Allen’s lobbed pass found Jordan Shipley on the edge of the are, who controlled the floated ball before his goal-bound shot was deflected away for a corner.
However, the hosts once again probed for the opener with Jonny Howson firing over from distance. Patrick Roberts, springing on to a loose pass to go clear of the Sky Blues defence, also blasted over after being pressured by the recovering Dominic Hyam.
Sam Morsy came closest to open the scoring, with his deflected shot hitting the crossbar on 52 minutes. The ball fell to Morsy at the edge of the area, with the Boro midfielder attempting to place the ball in the corner, but his effort was blocked by Gustavo Hamer.
On 70 minutes, City caught Middlesbrough on the break with Jamie Allen collecting possession before laying the ball off to the onrushing Shipley to cross. He attempted to find Matty Godden in front of goal but was denied by a last-ditch block.
A lung-busting run from Jonny Howson down the right wing resulted in a floated ball towards Assombalonga who headed over the bar, with 15 minutes remaining.
The game began to open up in the final stages, with Jamie Allen once again finding a pocket of space on the right-hand side of Boro’s box. His thunderous attempt to find the far corner of Marcus Bettinelli’s goal drifted just wide.
On 81 minutes, Britt Assombalonga gave Boro the lead, after a through ball from Sam Morsy put the striker through on goal. The striker maintained his composure with a measured finish to put Neil Warnock’s side ahead.
The Sky Blues pushed for an equaliser with some dangerous crosses into the box, but the Boro defence held firm.
In added time, with City pushing forward, Djed Spence doubled Boro’s lead as he slid the ball past Marosi, after a lobbed pass caught the Sky Blues out on the counterattack.
FULL-TIME: MIDDLESBROUGH 2-0 SKY BLUES
Goals: Assombalonga (81’), Spence (96’)
Yellows: Assombalonga, Spence, Marosi
Sky Blues XI: Marko Marosi (GK), Sam McCallum, Leo Ostigard, Kyle McFadzean (C), Dom Hyam, Ryan Giles (Dabo, 69’), Gustavo Hamer, Ben Sheaf, Jordan Shipley (Walker, 79’), Jamie Allen (O’Hare, 79’), Matty Godden
Middlesbrough XI: Marcus Bettinelli, Djed Spence, Dael Fry, Paddy McNair, Anfernee Dijksteel, Patrick Roberts (Browne, 68’), Jonny Howson, Sam Morsy, George Saville, Marcus Tavernier (Coulson, 68’), Britt Assombalonga (C)
Unused Subs: Dejan Stojanovic, Marc Bola, Nathan Wood, Lewis Wing, Marvin Johnson