It was only the Bantams’ fifth win of the season.
Bradford established a 1-0 interval lead after an evenly-fought first half with a 34th-minute goal from right back Paul Caddis.
Lewis O’Brien surged into the penalty area before delivering a low cross to the far post for Caddis to score with a right-foot shot from 10 yards.
Both sides had narrow escapes in an end-to-end tussle.
Visiting goalkeeper Liam Roberts did well to save O’Brien’s goal-bound shot in the eighth minute, while at the other end, Bradford shot-stopper Richard O’Donnell managed to keep out a point-blank header from Andy Cook and also saved from Kieron Morris.
Bradford also had a left-off on the stroke of half-time when Cook headed against the crossbar from Luke Leahy’s cross.
The Bantams then took charge of the game with Ball’s quick-fire brace. He scored in the 51st minute with a low right-foot angled shot that deceived Roberts and added a third on the hour when O’Brien’s cross from the left was partially cleared, firing home from 12 yards.
Substitute Eoin Doyle completed the scoring in the 83rd minute with a 10-yard shot from Kelvin Mellor’s cross from the right.