Attendance: 18,538 (411 visitors)
It may have been Good Friday yesterday but it was certainly a great Saturday for Phil Parkinson's Bantams after they ground out an important win over fellow promotion hopefuls Millwall at the Coral Windows Stadium.
In difficult windy conditions, City substitute Steven Davies powered home a header in front of an ecstatic Kop from a Nathan Clarke cross in the 79th minute to send Parkinson's men back into the Play-Off places and only a point behind opponents Millwall.
Davies' match-winning goal - his fourth of the season - came only four minutes after the striker had been introduced onto the pitch as part of a double substitution made by Parkinson.
Millwall tried to find a way back into the game in the time remaining but Ben Williams produced a brilliant save to repel Steve Morison's half-volley inside the box in the closing stages.
City had seen a goal disallowed for offside early into the second period when Jamie Proctor tapped in from close range.
In a closely-fought opening period, both sides came closest to scoring via a direct free-kick.
Tony McMahon fired an effort narrowly wide after only six minutes before Millwall left back Joe Martin did likewise later in the half.
FT: Bradford City 1 Millwall 0
90+2min: SUB - The Bantams bring on Josh Morris for Reid.
90min: There will be four minutes of time added on at the end of the game:
87min: Gregory plays a testing ball into the box but a watchful Darby kicks clear.
86min: Morison gains a yard of space inside the box but his looping strike on the half-volley is superbly pushed away by Ben Williams.
83min: SUB - Millwall bring on Jamie Philpot for Onyedinma.
83min: With the ball at his feet inside the box, Taylor picks out Gregory in space but Nathan Clarke makes a great recovery tackle to deny the striker a shot on goal.
82min: Morison beats Nathan Clarke to a ball forward to head down into the box. Shaun Williams looks to latch onto the header and drive with purpose towards goal but Reece Burke gets a vital touch and the ball goes through to Ben Williams.
79min: GOAL!!!!!!!!!!!!!!!!!!!!! Bradford City 1 Millwall 0 - The Bantams have the lead through Davies! Nathan Clarke comes to the byline to a take a throw-in but a quick-thinking Meredith plays the ball into his feet. Clarke loops the ball into the box and Davies swoops to crash a downward header through the legs of Archer from roughly six yards out!
77min: Nathan Clarke's long throw-in into the box is allowed to bounce, with the ball eventually dropping over Archer's crossbar.
75min: SUBS - The Bantams bring on Steven Davies and James Hanson for Billy Clarke and Proctor respectively.
73min: Darby's testing cross into the box finds Billy Clarke but his effort for goal is sliced. The ball drops to McMahon deep inside the area, his shot is blocked by Archer but the midfielder had already been flagged offside.
71min: YELLOW CARD - Taylor is booked for dragging Darby's arm back as the defender moved forward in City territory.
68min: The ball sits up for Billy Clarke but his drive from just outside the box deflects through into Archer's grasp.
66min: SUB - Millwall bring on Lee Gregory for O'Brien.
59min: YELLOW CARD - Webster is booked for sliding into the back of Proctor by the near touchline midway into Millwall's half of the pitch.
57min: SUB - Millwall bring on Chris Taylor for Upson.
51min: GOAL!.......NO! City think they have taken the lead through Proctor but the striker is penalised for offside. Proctor's initial effort following McMahon's cross into the box is repelled by Archer but Billy Clarke keeps the situation alive deep inside the area. Clarke lays the ball across goal for Proctor to tap in but he is flagged offside as the celebrations p
46min: Millwall restart the match.
HT: Bradford City 0 Millwall 0
45min: There will be two minutes of time added on at the end of the first period.
45min: Morison's low cross into the box beats Onyedinma but finds Aiden O'Brien behind him. O'Brien looks to fire for goal but his effort on the half-volley is sliced and the ball loops up onto the roof of Ben Williams' goal.
44min: Proctor holds off Upson before firing in a low cross into the six yard box that is just out of the reach of Billy Clarke in the middle.
42min: Kyel Reid moves in-field past Onyedinma Ben Thompson before firing in a strike from outside the box that is held by Archer.
41min: Mahlon Romeo's throw-in into the box finds Onyedinma in space. The winger hooks the ball across goal but Nathan Clarke is vitally placed to head clear to stop Steve Morison pouncing from close range.
32min: Billy Knott plays a one-two with McMahon before firing in a rising drive from just outside the box that swerves away from Archer's far post.
22min: YELLOW CARD - Darby is cautioned for catching Shaun Williams with a high boot as the pair contest a bouncing ball near to the home dug-out.
21min: Following McMahon's earlier effort from a set-piece delivery, Martin goes equally as close from a free-kick of his own outside the box, the left back firing in a curling drive that whistles just past Ben Williams' far post.
19min: YELLOW CARD - Millwall pick up another caution, this time Ed Upson is booked for catching Billy Clarke as the Irish attacker beat the Lions midfielder to a loose ball in midfield.
13min: YELLOW CARD - Martin is booked for clattering into McMahon as the midfielder cleared up field inside City's half of the pitch.
10min: Onyedinma gets free down Millwall's right flank as he bursts forward into space. The winger isn't able to use the space given to him, however, over-hitting his cross, allowing Darby to clear over by the far side.
8min: Billy Clarke's teasing cross into the area is missed by Mark Beevers despite the defender taking a swipe at the ball. Behind Beevers, the ball bounces off Joe Martin, just out of the reach of Proctor, before going through to Archer.
7min: Jamie Proctor holds off Byron Webster to reach Stephen Darby's cross into the box first but his downward header lacks the power to cause Archer too much concern.
6min: Tony McMahon fires narrowly wide of Jordan Archer's far post with a curling free-kick from roughly twenty yards out. That was close!
2min: Millwall appeal for a penalty when James Meredith appears to tackle through Fred Onyedinma to get the ball just inside the box. Play continues, however, with Shaun Williams eventually firing in a drive from outside the box that deflects through to Ben Williams.
0min: The Bantams kick off the match. City will attack towards the TL Dallas Stand end in the first period.
3:01pm: The Coral Windows Stadium falls silent for a minute to honour the victims of the terror attacks in Brussels on Tuesday.
BRADFORD CITY LINE UP:
Williams, Darby, N Clarke, Burke, Meredith, McMahon, Thorpe, Knott, Reid, B Clarke, Proctor
Subs: Cracknell, Hanson, Morris, Routis, Davies, Anderson, Thomas
Bradford City substitutions:
Davies for B Clarke (75), Hanson for Proctor (75), Morris for Reid (90+2)
Bradford City cautions:
MILLWALL LINE UP:
Archer, Romeo, Webster, Beevers, Martin, Onyedinma, Williams, Thompson, Upson, O'Brien, Morison
Subs: Girling, Edwards, Gregory, Nelson, Taylor, Philpot, Farrell
Taylor for Upson (57), Gregory for O'Brien (66), Philpot for Onyedinma (83)
Martin (13), Upson (19), Webster (59), Taylor (71)
Referee: D Bond
Assistant Referee: D Plowright
Assistant Referee: C Akers
Fourth Official: R Wootton