Swansea City’s Carabao Cup run came to an end, but only after giving Premier League Watford a stern test in this third-round tie at Vicarage Road.
The Swans gave a good account of themselves against top-flight opposition and will feel this was a tie they could have come out on top in.
The hosts had taken the lead through Danny Welbeck’s deflected header just before the half-hour mark, but Swansea soon levelled when Sam Surridge claimed his fourth goal of the season from a flowing attack.
Both sides had chances after the break, but it was the hosts who made one of theirs tell as Roberto Pereyra turned in a cross from close range to send the Hornets into the last 16.
Swans boss Steve Cooper had made eight changes from the side that started at Bristol City, with Mike van der Hoorn, Matt Grimes and ex-Watford man George Byers the men to keep their places.
The Swans made a strong start, playing on the front foot and asking questions of the hosts.
Surridge just failed to connect with a Kristoffer Peterson cross after stealing a march on his marker in just the seventh minute.
Watford responded, Ben Cabango making a good block after Nathaniel Chalobah cross had come through to Pereyra.
Surridge then cleared Adam Masina’s goalbound shot from the resulting corner.
It was proving to be an even contest and Swansea missed their best chance yet in the 27th minute.
Declan John made an excellent run to the edge of the area but failed to spot Peterson in acres of space to his right, and his more central ball to Surridge saw the striker caught offside.
And the Swans fell behind less than a minute later. Pereyra’s corner picked out Welbeck, and his header took a deflection to beat Kristoffer Nordfeldt.
But the visitors hit back in no time at all through a lovely goal five minutes later.
Connor Roberts’ excellent pass found Nathan Dyer free down the right, and his cross had too much on it for Heurelho Gomes and Surridge steered home the equaliser.
Swansea were now brimming with confidence and a lovely move from keeper Nordfeldt all the way into the final third saw Yan Dhanda fire over from the edge of the box.
Having held the initiative going into the break, the Swans had to survive some pressure during the early stages of the second half.
Andre Gray was denied by Nordfeldt after a ball broke to him in the box, while Pereyra’s shot was well blocked by Cabango.
But it took a brilliant clearance by Christian Kabasele to prevent the Swans taking the lead six minutes after the resumption.
Peterson produced some trickery down the flank and, when his cross picked out Roberts, the full-back’s header was destined for the far corner until Kabasele acrobatically volleyed away to safety.
That sparked a period of decent Swansea pressure, with Byers firing just over after Dyer had simply breezed past Pereyra.
But, as the game wore on, the tension grew with the sides realising one error or one moment of magic could settle the contest.
Byers nearly picked out substitute Barrie McKay after good link work with Wayne Routledge, who had also been introduced from the bench.
However, it was a Watford sub that made the difference as Gerard Deulofeu’s first real contribution was to drive to the byline and fire a ball across the six-yard box that Pereyra bundled in.
Swansea sought a second equaliser, Routledge working Gomes from a smart McKay pass but could not find the goal to send the game to penalties.
Watford: Heurelho Gomes (captain), Daryl Janmaat, Sebastian Prodl, Christian Kabasele, Adam Masina, Abdoulaye Doucoure (Ismaila Sarr 60), Nathaniel Chalobah, Domingos Quina (Tom Cleverley 56), Roberto Pereyra, Danny Welbeck, Andre Gray (Gerard Deulofeu 76).
Subs not used: Daniel Bachmann, Craig Dawson, Tom Dele-Bashiru, Dimitri Foulquier.
Swansea City: Kristoffer Nordfeldt; Connor Roberts, Mike van der Hoorn, Ben Cabango, Declan John; George Byers, Matt Grimes (captain); Nathan Dyer (Jordon Garrick 79), Yan Dhanda (Wayne Routledge 66), Kristoffer Peterson (Barrie McKay 69); Sam Surridge.
Subs not used: Erwin Mulder, Brandon Cooper, Tom Carroll, Borja Baston.
Attendance: 8,903
Referee: Darren Bond