The Bantams and Oldham Athletic shared the spoils at the Utilita Energy Stadium - with a 0-0 draw in Sky Bet League Two.
After two-straight defeats, City ensured their unbeaten start to 2021 at home continued in West Yorkshire.
After a caging opening, Danny Rowe came close on nine minutes when Ollie Crankshaw fed him the ball from 25-yards out.
City’s No.28 turned away from his defender before rifling his effort into the hands of Laurie Walker in the visitors’ goal.
The Latics almost opened the scoring in the 16th minute when Marcel Hilssner curled in a corner to the six-yard box. Davis Keillor-Dunn headed goalward but Paudie O’Connor was on hand to deflect the effort over the crossbar.
Richard O’Donnell was tested for the first time when Conor McAleny found space behind the Bantams’ backline, before striking a low shot that stung the palms of the City stopper.
Paudie O’Connor nearly scored his second in as many matches when Elliot Watt floated over a free-kick from midway inside Oldham’s half.
The City defender stretched his leg out in an attempt to turn it goalwards but failed to keep it down.
Keith Curle’s side began to press as the game approached the half-hour mark, and Keillor-Dunn saw his effort from 20-yards out curl wide of the post - before McAleny fizzed his effort into O’Donnell’s gloves.
Connor Wood came within inches of breaking the deadlock in the 53rd minute when he darted forwards into the final third and unleashed a curling effort with his right foot which whistled just past the post.
Mark Trueman and Conor Sellars’ side looked to steal the points late on as the match entered the closing stages.
Andy Cook played through Charles Vernam who got away from his defender and forced a save from the Latics’ goalkeeper - ensuring the points were shared at the Utilita Energy Stadium.
CITY: Richard O’Donnell ©, Connor Wood, Niall Canavan, Paudie O’Connor, Anthony O’Connor; Elliot Watt, Levi Sutton; Ollie Crankshaw, Gareth Evans, Charles Vernam (Kian Scales 81’); Danny Rowe (Andy Cook 72’). Subs (not used): Sam Hornby, Clayton Donaldson, Jordan Stevens, Rumarn Burrell, Finn Cousin-Dawson.
LATICS: Laurie Walker; Harry Clarke, Carl Piergianni ©, Dylan Fage, Kyle Jameson; Marcel Hilssner (Dylan Bahamboula 59’), Callum Whelan, Nicky Adams (Andrea Badan 72’); Alfie McCalmont, Conor Aleney, Davis Keillor-Dunn. Subs (not used): Lawrence Bilboe, Bobby Grant, Brice Ntambwe, Raphael Diarra, Vani Da Silva.
REFEREE: Andy Haines (Tyne & Wear).