Bradford avenged their 1-0 defeat at Aldershot 11 days ago to record their second successive home win under new manager Peter Taylor.
The visitors went in front after nine minutes when Anthony Straker fired home at the far post after keeper Matt Glennon spilled Scott Donnelly's shot.
However, Bradford equalised five minutes later with a superb header from James Hanson who dived at the far post.
Omar Daley scored Bradford's winner with a shot from the edge of the area.
Bradford City manager Peter Taylor told BBC Radio Leeds:
"That was very pleasing, especially as we had to work so hard to win it.
"We started poorly and let in a sloppy goal, but it shows some good character and togetherness to fight back and win it because Aldershot are a good team.
"I think the players showed how hungry they are to win games at the moment and to improve. We scored to wonderful goals today and it was great to see Omar Daley to score such a good goal."
Aldershot manager Kevin Dillon told BBC Surrey::
"I thought we played really well today, I thought the players were terrific. I wouldn't change any of their players for mine.
"I've always said we'd finish in the top 10 - and that's overachieving. I enjoyed the performance today because there was a real togetherness in the team and we took the game to them.
"We did have them on the back foot and I thought we deserved a point at least. We nearly got there."
Live text and stats
Saturday, 13 March 2010
02 Ramsden (Bateson 46)
07 Daley yellow card (Grant 65)
17 Hanson yellow card
03 Straker yellow card
14 Hylton (Spencer 78)
15 Donnelly (M Morgan 65)
17 Hudson (Jackson 45)
10 M Morgan,
Ref: Geoff EltringhamAtt: 11,272
Attempts on target
Attempts off target
90:00+4:27 The game is over, as the referee blows his whistle.
90:00+3:57 Free kick awarded for an unfair challenge on Matthew Clarke by Marvin Morgan. Matthew Glennon takes the direct free kick.
90:00+3:02 Booking Anthony Straker is cautioned.
90:00+2:50 Free kick awarded for a foul by Anthony Straker on Gavin Grant. Free kick taken by Adam Bolder.
90:00+1:13 Aaron Brown concedes a free kick for a foul on Gavin Grant. Direct free kick taken by Jonathan Bateson.
89:27 Marvin Morgan is ruled offside. Matthew Glennon takes the free kick.
88:25 Corner taken right-footed by Ben Herd from the left by-line, save made by Matthew Glennon.
86:27 Ben Herd takes the inswinging corner, Luke Oliver makes a clearance. Shot from just outside the area by Ben Harding goes over
83:32 Ben Herd takes the inswinging corner, save by Matthew Glennon.
80:50 Outswinging corner taken left-footed by Robbie Threlfall, Aaron Brown manages to make a clearance.
80:07 Inswinging corner taken from the right by-line by Robbie Threlfall, clearance made by Marlon Jackson.
76:23 Substitution Damian Spencer is brought on as a substitute for Danny Hylton.
76:23 Free kick awarded for an unfair challenge on Luke Oliver by Danny Hylton. Matthew Glennon takes the direct free kick.
75:52 Gavin Grant takes a shot. Save by Mikhael Jaimez-Ruiz.
73:40 Foul by Luke Oliver on Aaron Brown, free kick awarded. Free kick taken by Mikhael Jaimez-Ruiz.
Correction - 73:11 Unfair challenge on Robbie Threlfall by Marlon Jackson results in a free kick. Robbie Threlfall takes the direct free kick.
73:11 Marlon Jackson gives away a free kick for an unfair challenge on Robbie Threlfall. Robbie Threlfall takes the direct free
71:43 Outswinging corner taken by Oliver Bozanic from the left by-line.
70:23 Marvin Morgan sends in a cross, Marlon Jackson has a headed effort at goal from close in which goes wide left of the target.
68:49 Robbie Threlfall takes the inswinging corner, Mikhael Jaimez-Ruiz makes a save.
66:29 Foul by Lee Bullock on Oliver Bozanic, free kick awarded. Free kick taken by Oliver Bozanic.
64:49 Substitution Scott Donnelly goes off and Marvin Morgan comes on.
64:17 Substitution (Bradford) makes a substitution, with Gavin Grant coming on for Omar Daley.
62:17 Booking Booking for Omar Daley for unsporting behaviour.
58:38 The assistant referee flags for offside against Danny Hylton. Matthew Glennon takes the free kick.
57:35 James Hanson gives away a free kick for an unfair challenge on Chris Blackburn. Free kick taken by Mikhael Jaimez-Ruiz.
56:01 Aaron Brown fouled by James Hanson, the ref awards a free kick. Ben Herd takes the direct free kick.
52:49 Marlon Jackson gives away a free kick for an unfair challenge on Luke Oliver. Matthew Glennon takes the free kick.
48:51 Lee Bullock concedes a free kick for a foul on Oliver Bozanic. Direct free kick taken by Ben Herd.
48:18 Oliver Bozanic takes a shot. Save made by Matthew Glennon.
46:06 Danny Hylton is caught offside. Matthew Glennon takes the direct free kick.
45:45 Unfair challenge on Ben Herd by James Hanson results in a free kick. Mikhael Jaimez-Ruiz restarts play with the free kick.
45:01 The match restarts for the second half.
45:01 Substitution Jonathan Bateson joins the action as a substitute, replacing Simon Ramsden.
45:00+2:02 The referee blows for half time.
45:00+0:20 Scott Donnelly produces a right-footed shot from just outside the box that misses to the right of the target.
44:20 Substitution Marlon Jackson is brought on as a substitute for Kirk Hudson.
36:39 Anthony Charles produces a left-footed shot from just outside the box that goes wide left of the goal.
35:52 Booking James Hanson receives a caution.
35:31 James Hanson concedes a free kick for a foul on Anthony Charles. Direct free kick taken by Scott Donnelly.
35:06 The ball is delivered by Oliver Bozanic, Anthony Charles takes a shot. Save made by Matthew Glennon.
34:24 Free kick awarded for an unfair challenge on Anthony Straker by Robbie Threlfall. Direct free kick taken by Oliver Bozanic.
Correction - 32:54 Inswinging corner taken by Simon Ramsden from the left by-line, save by Mikhael Jaimez-Ruiz.
32:54 Inswinging corner taken by Ben Herd, Matthew Glennon makes a save.
32:20 Free kick awarded for an unfair challenge on Lee Bullock by Chris Blackburn. Simon Ramsden restarts play with the free kick.
31:12 Effort on goal by Anthony Charles from just inside the area clears the bar.
29:34 Anthony Straker is adjudged to have handled the ball. Robbie Threlfall takes the free kick.
27:51 Omar Daley is ruled offside. Free kick taken by Mikhael Jaimez-Ruiz.
26:32 Effort on goal by Michael Flynn from a long way out goes over the bar.
26:03 Simon Ramsden takes the inswinging corner, clearance by Anthony Charles.
25:17 The referee gives a free kick against Ben Harding for handball. Matthew Glennon takes the free kick.
24:47 Corner taken by Scott Donnelly from the left by-line played to the near post, save made by Matthew Glennon.
24:10 Free kick awarded for a foul by Omar Daley on Anthony Charles. Direct free kick taken by Scott Donnelly.
21:22 GOAL - Omar Daley:Bradford 2 - 1 Aldershot A goal is scored by Omar Daley from just inside the area to the top left corner of the goal. Bradford 2-1 Aldershot.
16:26 Omar Daley concedes a free kick for a foul on Anthony Charles. Anthony Straker restarts play with the free kick, Effort on
goal by Chris Blackburn from inside the area goes harmlessly over the bar.
15:24 Danny Hylton takes a shot. Save made by Matthew Glennon.
13:32 The assist for the goal came from Michael Flynn.
13:32 GOAL - James Hanson:Bradford 1 - 1 Aldershot James Hanson scores a headed goal from close range. Bradford 1-1 Aldershot.
10:58 Luke Oliver challenges Mikhael Jaimez-Ruiz unfairly and gives away a free kick. Mikhael Jaimez-Ruiz restarts play with the
10:10 Free kick awarded for a foul by Anthony Straker on Luke O'Brien. Robbie Threlfall takes the free kick.
9:44 Corner taken by Simon Ramsden, Aaron Brown makes a clearance.
9:31 Omar Daley takes a shot. Save by Mikhael Jaimez-Ruiz.
7:46 Assist on the goal came from Anthony Charles.
7:46 GOAL - Anthony Straker:Bradford 0 - 1 Aldershot Anthony Straker gets on the score sheet with a goal from close in to the bottom right corner of the goal. Bradford 0-1 Aldershot.
4:48 Outswinging corner taken left-footed by Oliver Bozanic from the left by-line to the near post, Michael Flynn makes a clearance.
3:49 Michael Flynn is flagged offside by the assistant referee. Mikhael Jaimez-Ruiz takes the free kick.
0:00 The ref blows the whistle to begin the match.
Live text and data provided by The Press Association.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.