City - who had a second-half penalty saved - fell to a 1-0 defeat at the University of Bolton Stadium.
Nathan Delfouneso capitalised on a defensive mix-up to net the only goal of the game in the 12th minute, despite Billy Clarke seeing a second-half penalty stopped.
Bolton took the lead after just 12 minutes when Antoni Sarcevic drove forward and bounced a lob off the top of the crossbar, which City then failed to clear, allowing Delfouneso to open the scoring.
The visitors responded to their early setback well, and in the 17th minute Bryce Hosannah found himself in a dangerous position to shoot towards goal, but his effort flew high into the stands.
Hosannah proved to be a constant threat throughout the Sky Bet League Two clash, and Ryan Delaney was shown the first booking of the game for cynically bringing down the defender as he looked to be through on goal.
Callum Cooke had a good opportunity to level the scoring just before the half-time whistle, but couldn’t find the target after rushing his effort from inside the penalty area.
Bolton started the second half on the front foot, with Ali Crawford forcing Richard O’Donnell into a good save - denying an awkward shot from outside the penalty area.
Delfouneso had a good opportunity to double the hosts’ lead in the 52nd minute.
After successfully taking on Elliot Watt, the attacker found himself clear on goal but decided to cross to Sarcevic - though his ball was overhit.
City piled on pressure after the hour mark and had two claims for a penalty turned down by the referee, after constant pressure from the Wanderers defenders.
The Bantams were finally awarded a penalty in the 69th minute, after Anthony O’Connor was brought down by Delfouneso.
Billy Clarke stepped up, but failed to beat Billy Crelin from 12 yards out - saving well down low to his right.
Despite late pressure, the Bantams failed to convert their chances and suffered defeat.
WANDERERS: Billy Crellin; Peter Kioso, Alex Baptiste, Ricardo Santos, Ryan Delaney, Harry Brockbank (Jamie Mascoll 64’); Antoni Sarcevic ©, Andrew Tutte (Brandon Comley, 76’), Ali Crawford; Nathan Delfouneso, Arthur Gnahoua (Ronan Darcy 90+3’). Subs (not used): Liam Gordon, George Taft, Jak Hickman, Reiss Greenidge.
CITY: Richard O’Donnell ©; Bryce Hosannah, Paudie O’Connor, Anthony O’Connor, Ben Richards-Everton, Connor Wood; Finn Cousin-Dawson (Harry Pritchard 69’), Elliot Watt, Callum Cooke; Clayton Donaldson, Billy Clarke (Austin Samuels 76’). Subs (not used): Sam Hornby, Jackson Longridge, Tyler French, Reece Staunton, Dylan Mottley-Henry.