Southampton dominated the game at St. Mary’s through 80 minutes, but without finishing to match their creativity, Swansea pounced on the opportunity to steal the points.
Jonjo Shelvey, back from a long suspension for violent conduct, crashed home a beautiful strike from distance in the 83rd minute against the run of play to secure a surprise win for Swansea and send Southampton packing with a disappointing missed opportunity.
The first true chance fell to Southampton on six minutes, as James Ward-Prowse was played in with space in the box, but his shot was ripped right at Lukasz Fabianski with the goal gaping.
Swansea had a chance soon after, with Shelvey running the counter-attack through the middle, and his sublime flick found Bafetimbi Gomis saw the French striker rip just wide of the top corner. The visitors faced an early injury problem, as Marvin Emnes was forced off after just 15 minutes with a knock, replaced by Modou Barrow.
[ RELATED: Watch full match replays ]
The game ground through the first 20 minutes with a number of physical meetings in the middle third. Southampton slowly grabbed domination of the possession, but failed to create any major chances with it through the half-hour mark.
Things got sloppy for both sides as the game eased towards halftime, but Southampton piled up the corner count. Not much came of it, but the crowd got into things if nothing else.
The second half started where the first one left off, with little in the game, but things came to life on 60 minutes. Jonjo Shelvey burst through the middle and had space thanks to Gomis cutting in front of him to draw defenders, and the midfielder’s low shot beat Frasier Forster but smashed the left post and came back out.
[ RELATED: Latest Premier League standings ]
The 75th minute saw Southampton use a long spell of possession to finally create something of a chance. Ashley Williams, who held Saints off all match in an impressive performance, blocked off a number of opportunities on the left wing before one finally came in from James Ward-Prowse, but it dangerously flashed across the six-yard box with nobody there to poke it home.
That was when Swansea decided to take control. Shelvey shocked St. Mary’s in the 83rd minute by looping home a wonderful finish from 23 yards out after skipping past Jose Fonte.
The lead wasn’t safe yet, as Williams was needed to save the day. The Swansea defender twice denied substitute Saido Mane off the line to preserve the win with four minutes remaining. Ryan Bertrand was then sent off for a very ugly challenge on Barrow that earned him a straight red from Michael Oliver. Barrow was taken off on a stretcher.
Swansea’s win pushes them up into the top 10 past Stoke City into ninth, while Southampton fail to keep pace with Arsenal and Manchester United and now sit in fourth place, only in a Champions League place on goal differential above the Gunners.
Southampton: Forster, Clyne, Fonte, Yoshida, Bertrand, Reed (Mane 63′, Amat 90′), S. Davis, Ward-Prowse, Tadić, Elia (Seager 90′), Pellè.
Swansea City: Fabianski, Naughton (Rangel 82′), Fernandez, Williams, Taylor, Fulton, Carroll, Shelvey, Dyer, Emnes (Barrow 16′), Gomis.
Goals: Shelvey 83′