Watford extended their undefeated run to five matches as they eased to a 2-0 victory over 10-man Bristol City.
Former Hornets keeper David James gave his old club an early lead, punching Carl Dickinson's ball into his own net.
Teenager Sean Murray then doubled his side's advantage on 20 minutes, scrambling in a loose ball after James saved from Troy Deeney.
The hosts pushed for a foothold in the game, but their challenge ended when Liam Fontaine saw red late on.
City started the match the brighter, Stephen Pearson firing over before Brett Pitman's 25-yard free-kick tested Tomasz Kuszczak.
But they were to go behind in disastrous fashion on 15 minutes, when James misjudged Dickinson's clearance and contrived to punch the ball into an empty net.
Five minutes later and Watford were two up, Murray slotting home his third goal in four games.
Ricky Foster almost pulled one back just before half-time, but saw his left-footed volley smartly saved by Kuszczak.
The Polish keeper twice saved from Albert Adomah in the second half, before tipping wide Yannick Bolasie's shot.
But the contest was effectively finished when captain Fontaine brought down Jonathan Hogg and was sent off with just over 10 minutes to go.
Bristol City boss Derek McInnes:
"The first was a killer goal from our perspective because we had started brightly.
"A mistake like that is something you cannot anticipate and the game ran away from us.
"The red card was a mistimed, rather than a reckless tackle. The ref had a decision to make and I think he made the wrong one. We will appeal."
Watford boss Sean Dyche:
"I saw the incident clearly and it was definitely a red card under the current rules. When I was playing it might have been different.
"You don't wish a mistake like the one David James made on anyone, but something like that happened to us in our home game with City so it balanced out.
"We can consider ourselves safe from relegation now with eight games to go and that is a good feeling. There were a lot of people ready to write off the club and me at the start of the season so I'm delighted with how we have done."
- 01 James
- 03 McAllister Booked
- 04 Fontaine Dismissed
- 06 Carey (Kilkenny - 46' )
- 26 Foster Booked
- 28 McManus
- 21 Cisse (Bolasie - 73' )
- 27 Adomah
- 37 Pearson
- 09 Stead Booked
- 34 Pitman (Wood - 59' )
- 22 Gerken
- 31 Bryan
- 08 Kilkenny
- 17 Bolasie
- 39 Wood
- 35 Kuszczak
- 03 Dickinson Booked
- 05 Taylor
- 12 Doyley
- 33 Nosworthy
- 18 Kacaniklic
- 19 Buaben
- 22 Murray
- 32 Hogg
- 09 Deeney Booked
- 10 Iwelumo (Garner - 87' )
- 01 Loach
- 17 Bennett
- 07 Yeates
- 26 Assombalonga
- 25 Garner
Live Text Commentary
Full Time The final whistle goes and the game is over.90:00 +4:15
Albert Adomah crosses the ball, save made by Tomasz Kuszczak.90:00 +2:54
Nyron Nosworthy takes the free kick.90:00 +2:54 Booking
Booking Jon Stead receives a yellow card.90:00 +2:48
Free kick awarded for an unfair challenge on Sean Murray by Jon Stead.90:00 +0:09
Joe Garner challenges Jamie McAllister unfairly and gives away a free kick. Jon Stead takes the direct free kick.89:30
Foul by Stephen Pearson on Sean Murray, free kick awarded. Nyron Nosworthy takes the direct free kick.87:10
Inswinging corner taken from the right by-line by Alex Kacaniklic, David James makes a comfortable save.86:05 Substitution
Substitution Chris Iwelumo goes off and Joe Garner comes on.85:07
Yannick Bolasie crosses the ball, save by Tomasz Kuszczak.82:33
Unfair challenge on Jon Stead by Martin Taylor results in a free kick. Jamie McAllister takes the free kick.82:22
The referee blows for offside. Richard Foster takes the indirect free kick.81:44
Effort from deep inside the area by Jon Stead clears the bar.78:06
Nyron Nosworthy restarts play with the free kick.78:06 Dismissal
Dismissal Liam Fontaine sent off.77:57
Unfair challenge on Jonathan Hogg by Liam Fontaine results in a free kick.77:16
Prince Buaben sends in a cross.76:22
Troy Deeney is ruled offside. Stephen McManus takes the free kick.74:46
Inswinging corner taken right-footed by Yannick Bolasie from the left by-line to the near post, Troy Deeney makes a clearance.74:34
Yannick Bolasie takes a shot. Save by Tomasz Kuszczak.
Troy Deeney takes a shot. Save by David James.72:58 Substitution
Substitution Yannick Bolasie replaces Kalifa Cisse.72:14
Inswinging corner taken by Alex Kacaniklic from the right by-line played to the near post, Neil Kilkenny manages to make a clearance.71:58
Chris Iwelumo takes a shot. Save by David James.70:17
Troy Deeney produces a cross, save by David James.69:29
Inswinging corner taken right-footed by Neil Kilkenny played to the near post, Troy Deeney makes a clearance.69:21
Jamie McAllister produces a cross, Sean Murray gets a block in.67:08
Free kick taken by Tomasz Kuszczak.67:08 Booking
Booking Troy Deeney booked for unsporting behaviour.67:02 Booking
Booking Booking for Jamie McAllister for unsporting behaviour.66:14
Unfair challenge on Troy Deeney by Jamie McAllister results in a free kick.63:45
Free kick awarded for a foul by Nyron Nosworthy on Jon Stead. Neil Kilkenny takes the direct free kick.63:20
Carl Dickinson crosses the ball, Troy Deeney produces a header from deep inside the six-yard box which goes wide of the right-hand post.62:41
Albert Adomah takes a shot. Save by Tomasz Kuszczak.62:05
Shot by Albert Adomah. Save by Tomasz Kuszczak.60:27
Corner from the right by-line taken by Jamie McAllister, clearance by Sean Murray.60:21
The ball is delivered by Albert Adomah, blocked by Carl Dickinson.58:53
Centre by Sean Murray.58:18 Substitution
Substitution Brett Pitman goes off and Chris Wood comes on.54:18
Stephen McManus fouled by Chris Iwelumo, the ref awards a free kick. David James restarts play with the free kick.53:43
Free kick awarded for a foul by Jon Stead on Nyron Nosworthy. Tomasz Kuszczak restarts play with the free kick.52:04
Corner taken by Jamie McAllister, Martin Taylor makes a clearance.51:55
A cross is delivered by Albert Adomah, clearance made by Carl Dickinson.48:15
Sean Murray produces a left-footed shot from outside the penalty box and misses right.45:28
The referee blows for offside against Troy Deeney. Liam Fontaine takes the free kick.45:01
The second half kicks off.45:01 Substitution
Substitution Neil Kilkenny replaces Louis Carey.45:00 +3:06 Half time
Half Time The half-time whistle blows.45:00 +1:35
Shot by Alex Kacaniklic. David James makes a save.43:36
Louis Carey challenges Chris Iwelumo unfairly and gives away a free kick. The ball is crossed by Sean Murray, Nyron Nosworthy takes a shot from 6 yards. Jamie McAllister gets a block in.40:29
Foul by Alex Kacaniklic on Brett Pitman, free kick awarded. Brett Pitman produces a strike on goal direct from the free kick.40:05
Richard Foster has an effort at goal from 35 yards. Save made by Tomasz Kuszczak.39:20
Free kick awarded for an unfair challenge on Albert Adomah by Jonathan Hogg. Jamie McAllister crosses the ball from the free kick left-footed from right channel, clearance by Nyron Nosworthy.38:03
Short corner taken by Albert Adomah.37:13
Free kick awarded for a foul by Sean Murray on Jamie McAllister. David James takes the free kick.35:51
Unfair challenge on Louis Carey by Chris Iwelumo results in a free kick. Free kick taken by Liam Fontaine.35:18
The ball is sent over by Richard Foster.34:27
Corner taken left-footed by Jamie McAllister from the right by-line, Jonathan Hogg makes a clearance.34:16
A cross is delivered by Albert Adomah, clearance by Jonathan Hogg.33:57
The ball is delivered by Louis Carey, clearance by Martin Taylor.32:03
Jon Stead has an effort at goal from long range that misses to the right of the target.30:10
Free kick taken by Liam Fontaine.30:10 Booking
Booking Carl Dickinson is cautioned by the ref for unsporting behaviour.30:03
Richard Foster fouled by Carl Dickinson, the ref awards a free kick.26:35
Corner from the right by-line taken by Jamie McAllister, clearance made by Chris Iwelumo.26:25
Centre by Liam Fontaine, Chris Iwelumo gets a block in.25:56
Chris Iwelumo gives away a free kick for an unfair challenge on Albert Adomah. Jamie McAllister crosses the ball from the free kick left-footed from left wing, clearance by Chris Iwelumo.24:17
Jonathan Hogg crosses the ball from the free kick right-footed from left channel, clearance by Jamie McAllister.24:17 Booking
Booking Richard Foster is booked.24:10
Alex Kacaniklic fouled by Richard Foster, the ref awards a free kick.21:30
The referee blows for offside. David James takes the free kick.19:09
Alex Kacaniklic provided the assist for the goal.19:09 Goal scored
Goal! - Sean Murray - Bristol C 0 - 2 Watford A goal is scored by Sean Murray from inside the six-yard box to the bottom right corner of the goal. Bristol City 0-2 Watford.18:15
Effort on goal by Jon Stead from just inside the penalty area goes harmlessly over the target.14:20
Assist by Carl Dickinson.14:20 Goal scored
Goal! - David James - Bristol C 0 - 1 Watford Own goal by David James. Bristol City 0-1 Watford.11:47
Free kick awarded for a foul by Nyron Nosworthy on Jon Stead. Strike on goal comes in from Brett Pitman from the free kick, save by Tomasz Kuszczak.7:18
Jon Stead takes a shot from 35 yards and went wide of the left-hand post.5:26
Foul by Jamie McAllister on Chris Iwelumo, free kick awarded. The free kick is swung in left-footed by Alex Kacaniklic, clearance made by Stephen Pearson.2:54
Effort on goal by Stephen Pearson from just inside the penalty area goes over the target.0:24
Free kick awarded for a foul by Louis Carey on Chris Iwelumo. Carl Dickinson takes the direct free kick.0:00
The referee gets the match started.
Live data and text provided by our data suppliers