Mark Hughes’ Bantams were held on the road, leaving Edgeley Park frustrated by Stockport County with a 0-0 draw.
City contained County for large periods of the game - with Harry Lewis denying Neill Byrne from close range - before the Bantams saw out the closing stages to leave Greater Manchester with a point.
It was the hosts who began the stronger, on a chilly evening at Edgeley Park.
A cross to the far post, just after two minutes, found Kyle Knoyle unmarked, but the right-back hooked his effort over.
It was not long until Hughes’ side started to threaten the Hatters, growing into the opening period as it wore on.
Alex Gilliead saw a thunderous shot charged down, moments before City’s No.11 felt he was brought down illegally inside the area, but cries for a visiting penalty were waved away by Martin Coy.
County’s momentum increased just after the 20-minute mark, as Ryan Croasdale and Kyle Wootton both had chances to convert, however only the latter forced a solid save from the Bantams’ No.1 Harry Lewis.
The momentum remained with the hosts for the remainder of the half, as Wootton saw his snapshot from the edge of the area whistle wide past Lewis’ net - to keep the game level going into the break.
Stockport’s threatening end to the first period translated into the second, as Neill Byrne rose highest at the far post, but Harry Lewis was on hand to avert the danger, moments before Croasdale had another effort from the edge of the box, but thrashed over.
City defended well to nullify the Hatters’ danger going forward, moments before second-half substitute Andy Cook saw his effort blocked by Akil Wright.
A game with very few chances ended in frustration, as City - and 1,450 travelling supporters - headed back to West Yorkshire with a play-off spot intact.
STOCKPORT: Ben Hinchliffe, Kyle Knoyle (Callum Camps 84’), Akil Wright, Neill Byrne, Paddy Madden (C), Will Collar, Ryan Johnson, Ryan Rydel, Ryan Croasdale, Kyle Wootton, Miles Hyppolyte. Subs not used: Vit Jaros, Connor Evans, Jack Stretton, Chris Hussey, Connor Jennings, Joe Lewis.
CITY: Harry Lewis, Brad Halliday, Matty Platt, Richie Smallwood (C), Tolaji Bola, Alex Gilliead, Vadaine Oliver (Andy Cook 82’), Romoney Crichlow, Abo Eisa, Dara Costello (Matt Derbyshire 68’), Adam Clayton. Subs not used: Colin Doyle, Yann Songo’o, Ryan East, Levi Sutton, Thierry Nevers.
ATTENDANCE: 8,991 (1,450 City supporters).