Bradford led after only 11 minutes. James Hanson nodded down Carl McHugh's high ball from the left and winger Adam Reach volleyed past Chris Day from 15 yards for his first goal since joining on loan from Middlesbrough in January.
Stevenage hit back in the 23rd minute when Francois Zoko was allowed time to switch the ball on to his left foot and score from 12 yards for his 17th goal of the season.
Bradford regained the lead three minutes before half-time. Day parried Reach's low shot at full stretch, but Hanson was on hand to fire into the top right corner for his 11th goal of the campaign.
French defender Bira Dembele headed against Bradford's crossbar before Stevenage equalised for the second time, Freeman's powerful shot beating goalkeeper Jon McLaughlin from 25 yards in the 64th minute.
Freeman then hit the 87th-minute winner when Jimmy Smith tapped a free-kick to him on the edge of the box.