City, who controlled proceedings in the first half, broke the deadlock eight minutes after the restart. Danny East failed to get enough on his intended header back to Lee Nicholls and Wells nipped in to slip the ball into an empty net for his 10th of the season.
James Hanson should have doubled the Bantams' advantage when he blazed the rebound over after Nicholls could only parry Craig Forsyth's fierce drive.
Wells was then denied by another timely block from Kelvin Langmead as the visitors looked for the crucial second goal.
Substitute Louis Moult went closest to an equaliser when his header was tipped over by Jon McLaughlin from Ben Tozer's long throw-in.
City substitute Will Atkinson almost grabbed a second goal late on when he was denied by Nicholls who then did well to keep out another effort from Wells.