The Swans’ Premier League survival hopes hang by a thread after they were beaten by relegation rivals Southampton at the Liberty.
Sub Monolo Gabbiadini settled a nervy encounter in SA1, with the Italian making the most of a scramble following a corner in the 73rd minute.
Carlos Carvalhal’s side pushed and probed, but they couldn’t muster the quality needed in the final third to find a breakthrough.
Defeat leaves the Swans three points behind the Saints and Huddersfield – who play Chelsea on Wednesday night – going into the final weekend of the season.
The Swans host relegated Stoke knowing they need victory along with defeat for the Terriers in both their games, against Chelsea and Arsenal, or a defeat for Southampton against Manchester City and an unlikely swing in goal difference.
If they are to beat the Potters, the Swans will need to find the finishing touches to match their endeavour.
On this night, Andy King and Andre Ayew tested the Saints defence early on before Sam Clucas flashed a header wide.
In between, Charlie Austin twice was denied by Lukasz Fabianski as the Pole came to the Swans’ rescue.
After the break, Jordan Ayew’s curling effort was tipped over by Alex McCarthy while his opposite number did well again to keep out Austin.
Sub Tammy Abraham, on for Martin Olsson, then headed straight at McCarthy before Gabbiadini sent the Saints support into raptures.
The Swans threw everything at the visitors as the minutes ticked by, with Abraham’s rising volley the closest effort of the lot.
But it wasn’t enough, and the Swans face an anxious wait to see if their survival hopes go down to the last day.
Swans: Lukasz Fabianski, Connor Roberts, Kyle Naughton (Luciano Narsingh, 75), Federico Fernandez (capt), Alfie Mawson, Martin Olsson (Tammy Abraham, 61), Andre Ayew, Andy King (Tom Carroll, 82), Ki Sung-Yueng, Sam Clucas, Jordan Ayew.
Subs not used: Kristoffer Nordfeldt, Mike van der Hoorn, Renato Sanches, Nathan Dyer.
Southampton: Alex McCarthy, Cedric Soares, Jack Stephens, Wesley Hoedt, Jan Bednarek (Manolo Gabbiadini, 67, Ryan Bertrand (capt), Dusan Tadic (Sam McQueen, 83), Oriol Romeu, Pierre-Emile Hojbjerg, Nathan Redmond (Shane Long, 64), Charlie Austin.
Subs not used: Fraser Forster, Guido Carrillo, James Ward-Prowse, Josh Sims.