Exeter City dented Bradford's promotion hopes and kept their own alive with a win at St James' Park.
City were 2-0 up at the break after Bantams keeper Matt Duke let a Craig Woodman corner slip into the net and Lawson D'Ath headed in a debut goal.
The visitors applied pressure after the break and pulled a goal back when Kyel Reid scored direct from a corner.
However Exeter made the points safe with a long-range strike from Scot Bennett and a John O'Flynn tap-in.
Exeter are now three points behind third-placed Burton while Bradford are now 10 points off the play-off places with a game in hand.
VIEW FROM THE DRESSING ROOM
Exeter City manager Paul Tisdale told BBC Radio Devon:
"We played the conditions very sensibly and did the job.
"We need to be in a position where we can put a run of wins together and that means being sensible.
"It was a comprehensive score line in the end against a very good team and a host of extremely good individual performances.
"We were very competitive, our back four are very settled and in very good form."
Sorry, we were unable to load match stats, please try again.
Live Text Commentary
Full Time The referee blows his whistle to end the game.90:00 +4:04
Arron Davies takes a shot. Comfortable save by Matt Duke.88:26
Assist by Mark Molesley.88:26 Goal scored
Goal! - John O'Flynn - Exeter 4 - 1 Bradford John O'Flynn scores a goal from close in to the bottom right corner of the goal. Exeter 4-1 Bradford.87:28
John O'Flynn is flagged offside by the assistant referee. Matt Duke takes the free kick.86:29
Corner from the left by-line taken by Gary Jones, clearance made by Artur Krysiak.86:05
Corner from right by-line taken by Kyel Reid.85:41
Inswinging corner taken by Gary Jones.83:57
The assist for the goal came from John O'Flynn.83:57 Goal scored
Goal! - Scot Bennett - Exeter 3 - 1 Bradford Scot Bennett finds the net with a goal from outside the box high into the middle of the goal. Exeter 3-1 Bradford.79:43 Booking
Booking Booking for Danny Coles for unsporting behaviour.78:03 Substitution
Substitution Jake Gosling leaves the field to be replaced by Steve Tully.78:03 Goal scored
Goal! - Kyel Reid - Exeter 2 - 1 Bradford Goal scored by Kyel Reid from just outside the penalty box to the top left corner of the goal. Exeter 2-1 Bradford.78:03
Inswinging corner from right by-line taken by Kyel Reid to centre,77:25
Corner from the right by-line taken by Kyel Reid, clearance by Artur Krysiak.76:47
Gary Jones takes the inswinging corner, clearance made by Kevin Amankwaah.73:30
Direct free kick taken by Gary Jones.73:30 Booking
Booking Booking for Kevin Amankwaah for unsporting behaviour.73:26
Foul by Kevin Amankwaah on Kyel Reid, free kick awarded.71:48
Michael Nelson produces a right-footed shot from just outside the penalty box that misses to the left of the goal.
Carl McHugh restarts play with the free kick.70:50 Booking
Booking Caution for Mark Molesley.70:36
Free kick awarded for an unfair challenge on Zavon Hines by Mark Molesley.68:37
Long range effort from Kyel Reid misses to the left of the target.68:00
Close range shot by James Hanson clears the bar.65:53
Kevin Amankwaah challenges James Hanson unfairly and gives away a free kick. Gary Jones restarts play with the free kick.63:39
Alan Connell produces a right-footed shot from outside the penalty box and misses right.62:28 Substitution
Substitution Lawson D'Ath leaves the field to be replaced by Jimmy Keohane.57:53
Corner taken right-footed by Gary Jones from the left by-line, James Hanson takes a shot.56:52
The assistant referee flags for offside against John O'Flynn. Matt Duke restarts play with the free kick.55:46
Lawson D'Ath takes a shot. Comfortable save by Matt Duke.53:28
Scot Bennett takes a shot. Save by Matt Duke.52:34
Zavon Hines challenges Craig Woodman unfairly and gives away a free kick. Free kick taken by Arron Davies.50:03
Foul by Pat Baldwin on Alan Connell, free kick awarded. Michael Nelson restarts play with the free kick.48:30
Shot by James Hanson from deep inside the penalty area misses to the left of the goal.45:01
The referee gets the second half underway.45:01 Substitution
Substitution Kyel Reid joins the action as a substitute, replacing Garry Thompson.45:01 Substitution
Substitution Zavon Hines replaces Nathan Doyle.45:00 +5:54 Half time
Half Time The first half comes to an end.45:00 +0:02
Jake Gosling provided the assist for the goal.45:00 +0:02 Goal scored
Goal! - Lawson D'Ath - Exeter 2 - 0 Bradford Lawson D'Ath scores a headed goal from inside the six-yard box. Exeter 2-0 Bradford.44:17
Free kick awarded for a foul by Gary Jones on Mark Molesley. Scot Bennett takes the free kick.42:33
Inswinging corner taken from the left by-line by Nathan Doyle.41:38
Effort from inside the six-yard box by Scot Bennett goes wide right of the goal.39:53
Gary Jones fouled by Craig Woodman, the ref awards a free kick. Direct free kick taken by Nathan Doyle.35:53
Jake Gosling takes a shot. Matt Duke makes a comfortable save.35:10
Shot from just outside the box by Nathan Doyle misses to the right of the goal.34:00
Jake Gosling concedes a free kick for a foul on Stephen Darby. Free kick taken by Matt Duke.30:43
Carl McHugh gives away a free kick for an unfair challenge on John O'Flynn. Craig Woodman takes the free kick.28:15
Unfair challenge on Lawson D'Ath by Alan Connell results in a free kick. Direct free kick taken by Danny Coles.26:51
Craig Woodman fouled by James Hanson, the ref awards a free kick. Craig Woodman restarts play with the free kick.25:38
Corner from right by-line taken by Craig Woodman.22:11
Inswinging corner taken right-footed by Nathan Doyle, Shot by Andrew Davies from deep inside the six-yard box clear the bar.17:13 Booking
Booking Carl McHugh goes into the referee's book for unsporting behaviour.17:09
Free kick awarded for a foul by Carl McHugh on John O'Flynn. Craig Woodman takes the free kick.10:03 Goal scored
Goal! - Matt Duke - Exeter 1 - 0 Bradford Headed own goal by Matt Duke. Exeter 1-0 Bradford.8:51
Craig Woodman takes a inswinging corner.6:29
Outswinging corner taken by Nathan Doyle, comfortable save by Artur Krysiak.5:07
Michael Nelson takes a shot. Save by Artur Krysiak.4:18
Lawson D'Ath challenges Garry Thompson unfairly and gives away a free kick. Free kick taken by Gary Jones.0:00
The game gets underway.
Live data and text provided by our data suppliers