Mark Hughes’ Bantams bowed out of the Carabao Cup at the third-round stage, with a 2-0 defeat at the hands of Sky Bet Championship side Middlesbrough.
The visitors went ahead in the first half through a near-post strike from Emmanuel Latte Lath, which prompted Hughes to make a half-time switch.
An improved City performance followed in the second half, but they could not find a way to get the ball into the back of the net.
Morgan Rogers put Boro 2-0 up and the away side were able to see the game out and secure their spot in round four.
The first chance of the game went the way of the visitors, who started well and controlled the opening period. A low cross in from the left was put over the bar by former City loanee Lewis O’Brien.
Boro went close again in the 12th minute with Samuel Silvera curling an effort just past the right post of the City net.
The visitors' pressure paid as they found the opening goal of the game 21 minutes in. Latte Lath beat Harry Lewis at his near post, having been played into space inside the area.
Hughes' men started the second half the stronger of the two sides, looking for a way back into the game and aiming to put pressure on the Boro goal.
Against the run of play, however, the visitors would go on to double their lead shortly before the hour, in the 54th minute.
In a goal similar to the first, Morgan Rogers was played in inside the area, and beat Harry Lewis at the near post to put the north-east outfit firmly in the driving seat.
City were still piling on the pressure as the clock ticked down, and refused to throw in the towel.
Second-half substitute Alex Pattison nearly scored off a miskick by goalkeeper Tom Glover, after Jamie Walker had had a goal ruled out for offside, and Clarke Oduor's blocked shot had seen cries for handball waved away by the referee.
Pattison again was played through after a nice flick by Tyler Smith. He raced away from his defender but his effort was saved low by Boro's 'keeper.
City could not find that goal back and, thus, were knocked out of the Carabao Cup at the expense of their second-tier visitors.
CITY: Harry Lewis, Liam Ridehalgh (Ciarán Kelly 71’), Brad Halliday, Matty Platt, Jamie Walker (Alex Pattison 71’), Andy Cook (Adam Wilson 71’), Alex Gilliead, Clarke Oduor (Tyler Smith 71’), Sam Stubbs (C), Daniel Oyegoke, Chisum Afoka (Rayhaan Tulloch 46’). SUBS NOT USED: Colin Doyle, Richie Smallwood, Emmanuel Osadebe, Bobby Pointon.
MIDDLESBROUGH: Thomas Glover, Tommy Smith, Daniel Barlaser, Dael Fry (C), Hayden Hackney, Riley McGree (Alex Gilbert 72’), Emmanuel Latte Lath, Morgan Rogers, Paddy McNair, Samuel Silvera, Lewis O’Brien. SUBS NOT USED: Jamie Jones, Isaiah Jones, Jonny Howson, Josh Coburn, Hayden Coulson, Darragh Lenihan, Lukas Engel, Law McCabe.
GOALS: Latte Lath (21’), Rogers (54’).
ATTENDANCE: 15,754 (4,188 travelling Middlesbrough supporters).