The big striker shot home from eight yards after 52 minutes when the visitors failed to deal with Joe Bryan’s curling free-kick into the box from the left.
City had to wait until injury time to clinch the points at Ashton Gate, Luke Freeman running at the Fleetwood defence before feeding fellow substitute Jay Emmanuel-Thomas, who shot low past Chris Maxwell.
How the game reached half-time without a goal was a mystery. Jamie Proctor, Josh Morris, Nick Haughton and Gareth Evans all went close in a bright Fleetwood start.
City appeared to be feeling the effects of a hectic league and cup fixture programme, but gradually got their game together to create some excellent chances.
Maxwell saved well from Kieran Agard and Smith, while Aden Flint was thwarted by a goalline clearance from Morris and headed inches over from a Wade Elliott corner.