Match ends, Watford 0, Ipswich Town 1.
Substitute Richard Chaplow scored in injury time to earn Ipswich three points against high-flying Watford.
A tight first half yielded few chances with Heurelho Gomes' save from Town striker Luke Varney's shot the nearest either side came to a breakthrough.
With the game drifting towards a draw the substitutes combined to find a goal when Freddie Sears set up Chaplow to finish past Gomes.
Watford, who had no shots on target, stay second in the Championship.
The home side had won six of their previous seven games at Vicarage Road but struggled to break down a resilient Ipswich side in the first half, with Adlene Guedioura's 25-yard shot over the bar the closest they came.
With the midfields cancelling each other out chances were at a premium, but Hornets' goalkeeper Gomes had to be alert to turn Varney's effort wide after he cut in from the right.
Ipswich's midfield continually broke up play and Mick McCarthy's side did threaten the goal with Sears' long-range attempt, which was followed by Luke Chambers' header from the resulting corner.
Watford's best chance fell to Odion Ighalo, who turned and shot over the bar at the near post after Troy Deeney burst down the right-hand side.
Ipswich shut the Championship's second-top scorers down excellently throughout and executed their counter-attacking game-plan with a minute remaining.
Sears raced away from the Hornets' defence before squaring to Chaplow, who placed a right-footed finish into the bottom corner.
The win ended a run of six games unbeaten for Watford and moves McCarthy's side into the play-offs, after Brentford were held by Millwall.
Watford head coach Slavisa Jokanovic:
"It's disappointing and with the game we lost today it's a normal emotion. We've won many games in the past in the last minute and today we lost the game.
"I accept, first of all, this is my responsibility because I don't want to close the game out and we're looking for a way to try and win it.
"I made a mistake, my team made a mistake in the last moments and we lost one point."
Ipswich boss Mick McCarthy:
"With seven games to go, it's a huge result for us, it's fabulous and we're back in the top six.
"I thought it was a really top tactical performance as much as anything against a team that try and play through you.
"We had to change a couple of times to accommodate them and I thought we did it particularly well. It's a great victory in the last minute and it's a great finish by Chappers (Richard Chaplow). I thought all the subs contributed really well today."
- 6EkstrandSubstituted forAngellaat 34'minutesBooked at 37mins
- 7LayunSubstituted forVydraat 78'minutes
- 8TozserSubstituted forAnyaat 58'minutes
- 3MingsBooked at 52mins
- 17BruSubstituted forChaplowat 86'minutes
- 18TabbBooked at 90mins
- 39WoodSubstituted forSearsat 74'minutes
- 15VarneySubstituted forAndersonat 60'minutes
- 9MurphyBooked at 28mins
- Andy D'Urso
- Shots on Target
Second Half ends, Watford 0, Ipswich Town 1.
Goal! Watford 0, Ipswich Town 1. Richard Chaplow (Ipswich Town) right footed shot from the centre of the box to the bottom right corner. Assisted by Freddie Sears following a fast break.
Jay Tabb (Ipswich Town) is shown the yellow card for a bad foul.
Marco Motta (Watford) wins a free kick in the defensive half.
Foul by Jay Tabb (Ipswich Town).
Odion Ighalo (Watford) wins a free kick on the right wing.
Foul by Christophe Berra (Ipswich Town).
Foul by Marco Motta (Watford).
Tyrone Mings (Ipswich Town) wins a free kick in the defensive half.
Corner, Watford. Conceded by Richard Chaplow.
Substitution, Ipswich Town. Richard Chaplow replaces Kevin Bru.
Foul by Paul Anderson (Ipswich Town).
Ben Watson (Watford) wins a free kick in the defensive half.
Kevin Bru (Ipswich Town) wins a free kick in the attacking half.
Foul by Troy Deeney (Watford).
Attempt missed. Jay Tabb (Ipswich Town) left footed shot from outside the box is too high. Assisted by Daryl Murphy.
Attempt missed. Troy Deeney (Watford) left footed shot from outside the box is high and wide to the left. Assisted by Matej Vydra.
Attempt missed. Odion Ighalo (Watford) right footed shot from the left side of the six yard box is just a bit too high. Assisted by Troy Deeney with a cross.
Substitution, Watford. Matej Vydra replaces Miguel Layún.