Attendance: 4,953 (1,150 visitors)
Super sub Alex Jones netted his first goal for City as Stuart McCall's Bantams returned to winning ways with a hard-fought victory over Port Vale at a blustery Vale Park.
City led at the break thanks to skipper Romain Vincelot's header from a Tony McMahon free-kick delivery towards the end of the first half, but Vale levelled after the interval when JJ Hooper bundled home from close range.
McCall's side weren't to be denied, however, and Jones, who spent the first half of the season on loan at Vale, fired in the winner from inside the box just two minutes after coming on.
The victory moves City back up to fifth in the Sky Bet League One table.
In a promising opening to the contest from City, Josh Cullen and Billy Clarke both went close with strikes from inside the box.
Jordy Hiwula then forced home shot-stopper Leonardo Fasan into a save later in the half when he broke Vale's offside trap.
The Valiants had chances of their own in the first period, with Hooper and strike partner Anton Forrester forcing Colin Doyle into saves, but it was the Bantams who took the lead four minutes before the interval.
McMahon crossed into the box from a wide free-kick just outside the area and Vincelot got away from his marker Ben Purkiss to power a header past Fasan.
Hooper missed a decent opening to level things up just before half time but he was on hand to restore parity for the hosts shortly before the hour mark.
Forrester curled a cross dangerously into the middle and Hooper was in the right place to convert from close range past Doyle.
City responded by bringing on winger Alex Gilliead, and the Newcastle United loanee was quickly into the action.
He showed great pace down City's right to keep the ball in play by the byline and cross for Wyke to glance wide with a near post header.
McCall made another substitution eighteen minutes from the end, bringing on Jones for Nicky Law, and City's second replacement of the afternoon made an even greater impact.
Gilliead was involved again, crossing into the box towards Jones, who saw his first shot for goal blocked. The January recruit was soon onto the rebound, however, and he powered into the corner past Fasan.
City had to see out five minutes of injury time before victory was secured but disciplined defending for the Bantams proved enough to get them over the line.
FT: Port Vale 1 Bradford City 2
90+3min: The ball bounces out to Pugh just outside the box but the midfielder's effort for goal on the bounce is sliced wide.
90min: There will be five minutes of time added on at the end of the match.
86min: YELLOW CARD - Hiwula is booked for dissent after giving a free-kick away deep inside Vale territory.
84min: SUB - Vale bring on Gezim Shalaj for Thomas.
80min: Shodipo's cross into the box is punched away by Doyle. Pugh wins possession just outside the area, driving into the box to keep the attack alive. The ball eventually lands at the feet of Hooper but his strike is easily held by Doyle.
78min: SUB - Vale bring on Dan Turner for Forrester.
77min: SUB - The Bantams bring on Timothee Dieng for Wyke.
75min: YELLOW CARD - A delighted Jones celebrates with the City supporters after his goal but he is booked as a result.
74min: GOAL!!!!!!!!!!!!!! Port Vale 1 Bradford City 2 - The Bantams are back in front through Jones! Gilliead's cross from the byline finds Jones in the box, his first effort is blocked but the substitute striker is on hand to fire home at the second attempt!
72min: SUB - The Bantams bring on Alex Jones for Law.
72min: Kiko does well to surge into City's penalty area but the defender's shot on his weaker right shot is sliced over.
71min: SUB - Vale bring on Olamide Shodipo for Eagles.
69min: Guy goes for goal from distance with his weaker left foot and the well-struck effort fizzes narrowly over Doyle's bar.
67min: McMahon's effort direct from the resulting free-kick is gathered up on the bounce by Fasan.
66min: YELLOW CARD - Danny Pugh is booked for barging into the back of Wyke as the striker brought a Meredith pass down onto his chest and looked to surge forward into space.
64min: Gilliead shows great speed to chase down the ball and cross in before it reaches the byline. Wyke reaches the near post cross first ahead of Fasan but his glancing header goes narrowly wide.
62min: Thomas turns away from McArdle inside the box before lofting in a teasing cross into the middle. A watchful Knight-Percival does just enough, however, to prevent Forrester latching onto the cross before the defender clears over by the far side.
60min: SUB - The Bantams bring on Alex Gilliead for Clarke. City, who started with a diamond formation in midfield, will now play with a standard 4-4-2 formation.
58min: GOAL - Port Vale 1 Bradford City 1 - Hooper has Vale level as he bundles the ball home from close range after Forrester had crossed dangerously into the middle.
55min: Forrester turns away from Nathaniel Knight-Percival as he looks to move into City's penalty area. A recovering McArdle slides in to make a tackle as the striker gets into the area, but Doyle still has to stick out a hand to save after the ball had deflected back off Forrester.
51min: Clarke's low drive from distance is pushed away via a strong right hand from Fasan.
49min: Meredith's cross into the box finds Hiwula in space but the striker's hook for goal sails comfortably over the bar.
47min: Kiko drives the ball into the six yard box after being found in space on the left by Thomas but Doyle clings on by his near post.
46min: Vale restart the match.
HT: Port Vale 0 Bradford City 1
45min: There will be two minutes of time added on at the end of the first half.
43min: Decent chance for Vale! As the home side keep an attack alive following Eagles' free-kick into City's penalty area, Forrester stretches to fire the ball across the six yard box. The ball drops at the feet of Hooper but the striker fires wide from a promising position.
41min: GOAL!!!!!!!!!! Port Vale 0 Bradford City 1 - Romain Vincelot heads City into the lead from the resulting free-kick! McMahon's delivery into the box from wide is met by Vincelot and the Frenchman heads past Fasan.
40min: YELLOW CARD - Thomas is booked for pulling back McMahon as the right back looked to burst into Vale's penalty area with the ball at his feet.
38min: Vale work a free-kick short but Eagles' low drive for goal from roughly twenty-five yards out is covered by Doyle as it goes past the post.
37min: YELLOW CARD - Meredith is booked for a foul on Eagles just inside Vale's half of the pitch.
35min: The home fans appeal for a penalty when Thomas goes down in the box under a challenge from McArdle. The referee does indeed blows his whistle, but only to signal that Thomas was offside when he received the ball from Forrester.
30min: Guy's teasing delivery into the box narrowly misses a couple of Vale players in the middle before bouncing behind for a City goal-kick.
28min: Clarke's clipped ball in behind releases Wyke into space down City's right flank. As Wyke crosses into the box, the ball lands at the feet of Clarke once again but the striker curls an effort over the bar.
25min: JJ Hooper drives in-field from Vale's left flank before firing in a low angled drive from the edge of the box that Doyle clings onto by his near post.
24min: Meredith's deflected cross drops nicely into the path of Hiwula in the centre of Vale's penalty area but the striker's feet give way at the vital time and ball bounces through into the path of Fasan.
23min: Hiwula beats Vale's offside trap to race clear onto a forward ball. As Hiwula moves into the penalty area, a recovering Callum Guy forces the striker to check back and his eventual shot on goal is repelled by the legs of Fasan.
23min: Nathaniel Knight-Percival heads for goal from a McMahon free-kick from wide into the box but the effort is held comfortably by Fasan.
20min: Vale Park stands for a minute's applause in honour of Vale supporter Jake Dean who recently passed away.
19min: Anton Forrester turns away from Rory McArdle after receiving Jerome Thomas' cross into his feet. Forrester fires for goal but his rising drive is held at the second attempt by Doyle.
17min: Cullen keeps the ball alive as Vale attempt to clear the resulting Clarke corner. The midfielder's header back into the box is flicked on by Wyke but Hiwula's acrobatic hooked volley on the turn drops comfortably wide of goal.
17min: Clarke's cross from the right towards Cullen in the box is headed narrowly over his own bar by Sam Foley.
13min: Another forceful from a City player, this time Law, causes more concern in the home defence. As Law's progress is eventually halted, the ball breaks free to Clarke, who proceeds to tee up Cullen. The midfielder fires forwards with a shot from inside the box but the effort curls away from the far post.
12min: A driving run into the box by James Meredith results in Law seeing a shot blocked from deep inside the area. The ball bounces back to Meredith, who lays off to Billy Clarke around the edge of the box. Clarke's low drive on his favoured left foot looks testing but the effort goes agonisingly wide of the post.
8min: Jordy Hiwula fires goal with a low drive from outside the area, the ball flicks up off a Vale defender and out for a City corner. Tony McMahon puts in the delivery but it is punched clear by Fasan.
5min: Chris Eagles tries his luck on the half volley from roughly twenty yards out but the effort is held by Doyle.
3min: City take a quick free-kick just outside Port Vale's penalty area, resulting in Nicky Law hanging the ball up with a cross into the middle. Valiants 'keeper Leo Fasan can only flap clear while under pressure from Charlie Wyke and Josh Cullen's shot for goal as the ball bounces loose hits off Ben Purkiss for a City corner.
1min: Kiko lets fly with fierce drive from all of thirty yards out that seems swerve on its way through to goal. With the ball visibly moving around in the swirling wind, Colin Doyle does well to push the shot away.
0min: The Bantams kick off the match.
PORT VALE LINE UP:
Fasan, Purkiss, Pugh, Smith, Kiko, Guy, Thomas, Foley, Eagles, Forrester, Hooper
Subs: Boot, Kelly, Turner, Tanser, Amoros, Shalaj, Shodipo
Port Vale substitutions:
Shodipo for Eagles (71), Turner for Forrester (78), Shalaj for Thomas (84)
Port Vale cautions:
Thomas (40), Pugh (66)
BRADFORD CITY LINE UP:
Doyle, McMahon, McArdle, Knight-Percival, Meredith, Vincelot, Cullen, Law, Clarke, Hiwula, Wyke
Subs: Sattelmaier, Darby, Toner, Dieng, Gilliead, Jones, Devine
Bradford City substitutions:
Gilliead for Clarke (60), Jones for Law (72), Dieng for Wyke (77)
Bradford City cautions:
Meredith (37), Jones (75), Hiwula (86)
Referee: M Heywood
Assistant Referee: D Plowright
Assistant Referee: N Smith
Fourth Official: M Salisbury