Carl McHugh's injury-time header earned Bradford their first win in 14 games and dented Port Vale's play-off hopes.

Left-back McHugh guided Gary Jones' corner past Chris Neal, who had been excellent, to secure the vital victory.

Neal had been in defiant mood with excellent saves from James Hanson and Adam Reach although Rory McArdle headed off his own goalline for City.

Vale are now six points off the top six while City have pulled eight points clear of the relegation zone.

Lineup, Bookings (4) & Substitutions (3)

Bradford City

  • 01 McLaughlan
  • 02 Darby
  • 16 McHugh Booked
  • 18 Jones
  • 05 Davies
  • 23 McArdle
  • 32 Bennett (Thompson - 71' )
  • 24 Doyle
  • 21 McLean (Gray - 94' )
  • 09 Hanson
  • 28 Reach

Substitutes

  • 04 Dolan
  • 10 Gray
  • 11 Thompson
  • 12 Jameson
  • 14 Yeates
  • 27 McBurnie
  • 29 Atkinson

Port Vale

  • 01 Neal
  • 02 Yates
  • 05 Dickinson
  • 18 Lines Booked
  • 20 Grimmer
  • 17 Davis
  • 07 Loft Booked
  • 21 Griffith Booked
  • 19 Williamson (Hugill - 73' )
  • 11 Pope
  • 03 Jones

Substitutes

  • 08 Dodds
  • 09 Myrie-Williams
  • 10 Tomlin
  • 12 Johnson
  • 26 Birchall
  • 28 Knott
  • 39 Hugill
Ref: Mark Brown
Att: 12,106

Match Stats

Shots

15 7

On target

3 5

Corners

8 0

Fouls

11 14

Live Text Commentary

Full time

Full Time Match ends, Bradford City 1, Port Vale 0.

90:00 +5:57 Full time

Full Time Second Half ends, Bradford City 1, Port Vale 0.

90:00 +3:12 Substitution

Substitution Substitution, Bradford City. Andy Gray replaces Aaron McLean.

90:00 +2:42 Booking

Booking Chris Lines (Port Vale) is shown the yellow card.

90:00 +2:32

Garry Thompson (Bradford City) wins a free kick in the defensive half.

90:00 +2:32

Foul by Chris Lines (Port Vale).

90:00 +1:22 Goal scored

Goal! Goal! Bradford City 1, Port Vale 0. Carl McHugh (Bradford City) header from the centre of the box to the top right corner. Assisted by Gary Jones with a cross following a corner.

90:00 +0:59

Corner, Bradford City. Conceded by Carl Dickinson.

88:00

Joe Davis (Port Vale) wins a free kick in the attacking half.

87:51

Foul by James Hanson (Bradford City).

87:30

Attempt missed. Daniel Jones (Port Vale) header from the left side of the six yard box misses to the left.

85:35

Foul by James Hanson (Bradford City).

85:35

Joe Davis (Port Vale) wins a free kick in the attacking half.

84:43

Nathan Doyle (Bradford City) wins a free kick in the defensive half.

84:43

Foul by Chris Lines (Port Vale).

83:14

Attempt missed. James Hanson (Bradford City) header from the centre of the box misses to the left.

79:52

Corner, Bradford City. Conceded by Doug Loft.

78:53

Attempt missed. Gary Jones (Bradford City) left footed shot from the left side of the box misses to the left.

77:25

Attempt saved. Jordan Hugill (Port Vale) right footed shot from outside the box is saved in the centre of the goal.

75:22

Adam Reach (Bradford City) hits the left post with a left footed shot from the left side of the box.

74:00

Nathan Doyle (Bradford City) wins a free kick in the attacking half.

73:57

Foul by Jordan Hugill (Port Vale).

72:43 Substitution

Substitution Substitution, Port Vale. Jordan Hugill replaces Ben Williamson.

71:12

Attempt missed. Chris Lines (Port Vale) right footed shot from outside the box is too high from a direct free kick.

70:27 Substitution

Substitution Substitution, Bradford City. Garry Thompson replaces Kyle Bennett.

70:00

Doug Loft (Port Vale) wins a free kick in the attacking half.

69:48

Foul by Nathan Doyle (Bradford City).

68:56

Foul by Gary Jones (Bradford City).

68:56

Anthony Griffith (Port Vale) wins a free kick in the defensive half.

64:14 Booking

Booking Carl McHugh (Bradford City) is shown the yellow card.

64:00

Doug Loft (Port Vale) wins a free kick on the left wing.

63:48

Foul by Carl McHugh (Bradford City).

62:22

Attempt saved. Doug Loft (Port Vale) right footed shot from outside the box is saved in the top left corner.

61:34

Foul by Kyle Bennett (Bradford City).

61:34

Carl Dickinson (Port Vale) wins a free kick on the right wing.

59:29

Attempt missed. Rory McArdle (Bradford City) header from the centre of the box is close, but misses to the left.

59:03

Corner, Bradford City. Conceded by Daniel Jones.

58:08

James Hanson (Bradford City) wins a free kick in the defensive half.

58:08

Foul by Adam Yates (Port Vale).

55:00

Tom Pope (Port Vale) wins a free kick in the defensive half.

54:58

Foul by Rory McArdle (Bradford City).

53:56

Attempt missed. Adam Reach (Bradford City) right footed shot from the left side of the box misses to the right.

52:39

Attempt missed. Andrew Davies (Bradford City) header from the centre of the box is too high.

52:00

Kyle Bennett (Bradford City) wins a free kick in the defensive half.

51:50

Foul by Anthony Griffith (Port Vale).

51:11

Corner, Bradford City. Conceded by Carl Dickinson.

45:27

Corner, Bradford City. Conceded by Doug Loft.

45:00

Second Half begins Bradford City 0, Port Vale 0.

45:00 +2:20 Half time

Half Time First Half ends, Bradford City 0, Port Vale 0.

43:28

Nathan Doyle (Bradford City) wins a free kick on the left wing.

43:28

Foul by Anthony Griffith (Port Vale).

43:05

Attempt missed. Carl McHugh (Bradford City) header from the left side of the box misses to the left.

42:24

Aaron McLean (Bradford City) wins a free kick in the defensive half.

42:24

Foul by Joe Davis (Port Vale).

39:22

Foul by Nathan Doyle (Bradford City).

39:22

Tom Pope (Port Vale) wins a free kick in the defensive half.

38:55

Attempt missed. Kyle Bennett (Bradford City) right footed shot from outside the box misses to the left.

36:35

Foul by Kyle Bennett (Bradford City).

36:35

Carl Dickinson (Port Vale) wins a free kick on the right wing.

32:47

Attempt missed. Gary Jones (Bradford City) right footed shot from outside the box is close, but misses to the left.

32:12 Booking

Booking Doug Loft (Port Vale) is shown the yellow card.

32:00

Adam Reach (Bradford City) wins a free kick in the defensive half.

31:57

Foul by Doug Loft (Port Vale).

30:41

Attempt saved. James Hanson (Bradford City) header from the centre of the box is saved in the top centre of the goal.

29:38

Attempt missed. Aaron McLean (Bradford City) right footed shot from outside the box is too high.

29:19

Corner, Bradford City. Conceded by Carl Dickinson.

28:35

Attempt saved. Doug Loft (Port Vale) right footed shot from outside the box is saved in the top right corner.

26:27

Foul by Aaron McLean (Bradford City).

26:27

Carl Dickinson (Port Vale) wins a free kick in the defensive half.

25:18

Carl McHugh (Bradford City) wins a free kick on the right wing.

25:18

Foul by Doug Loft (Port Vale).

24:02

Hand ball by Ben Williamson (Port Vale).

21:39 Booking

Booking Anthony Griffith (Port Vale) is shown the yellow card.

21:09

Aaron McLean (Bradford City) wins a free kick in the defensive half.

21:09

Foul by Anthony Griffith (Port Vale).

17:52

Adam Reach (Bradford City) wins a free kick in the defensive half.

17:52

Foul by Adam Yates (Port Vale).

16:55

Corner, Bradford City. Conceded by Chris Neal.

16:22

Attempt saved. Gary Jones (Bradford City) right footed shot from outside the box is saved in the top right corner.

15:37

Corner, Bradford City. Conceded by Carl Dickinson.

14:29

Attempt missed. James Hanson (Bradford City) header from the centre of the box is close, but misses the top left corner.

13:03

Foul by Nathan Doyle (Bradford City).

13:03

Doug Loft (Port Vale) wins a free kick in the defensive half.

12:07

Rory McArdle (Bradford City) wins a free kick in the attacking half.

12:07

Foul by Tom Pope (Port Vale).

8:27

Attempt blocked. Chris Lines (Port Vale) right footed shot from more than 35 yards is blocked.

7:15

Attempt missed. James Hanson (Bradford City) left footed shot from the left side of the box is close, but misses to the right.

6:01

Attempt saved. Tom Pope (Port Vale) header from the centre of the box is saved in the centre of the goal.

3:37

Kyle Bennett (Bradford City) wins a free kick in the defensive half.

3:37

Foul by Carl Dickinson (Port Vale).

0:00

First Half begins.

0:00

Lineups are announced and players are warming up.

Live data and text provided by our data suppliers