Saints kept a sixth successive clean sheet and extended their unbeaten run to as many games, as Shane Long headed a second-half winner away to Swansea.
It was a game of few clear-cut chances at the Liberty Stadium, but Long delivered the decisive blow when he nodded James Ward-Prowse's cross past Lukasz Fabianski 20 minutes from time.
It means Saints have now taken 16 points from the last available 18, while they have not conceded in any of their last six – leaving them just one game shy of tying their Premier League record for consecutive clean sheets.
Koeman made four changes from the side that beat West Ham 1-0 at St Mary’s a week earlier. Victor Wanyama began a five-match ban, while Cédric, Maya Yoshida and Sadio Mané dropped to the bench. In place of them came Oriol Romeu, Steven Davis, Ward-Prowse and Matt Targett.
Davis was deployed as right-wing back, with Targett on the opposite side, as Saints adopted a 3-5-2 formation against Swansea’s 4-2-3-1.
The opening exchanges were relatively fruitless for both sides, although Graziano Pellè produced a good effort six minutes in, hitting a low, first-time volley from a Long knock-down on the edge of the box. Unfortunately for him, the ball was hit straight at Fabianski, who made the stop.
At the other end, André Ayew tested Fraser Forster with a low shot from distance, but the Saints keeper made a fairly routine stop to his left for his first save of the day.
Saints threatened again in the 16th minute, as Ward-Prowse produced an excellent ball from the right, which fell into the path of Oriol Romeu. He took a touch in the area, but Swansea skipper Ashley Williams then made a tremendous block as he stretched to shoot.
Romeu then became the first man into referee Jon Moss’s book, for a late tackle on Leon Britton shortly after the half-hour mark.
As the half wore on, both keepers remained largely untested, although Jordy Clasie was perhaps unfortunate to see his first-time shot from the edge of the area well blocked by Jack Cork five minutes before the interval.
Gylfi Sigurdsson then had an opening shortly afterwards, as a cross from the right was flicked on into his path, just inside the area at the back post, but he fired his volley well over.
As the seconds ticked down to half time, it was Saints who finally carved out a clear-cut chance, but an unmarked Shane Long put his header straight at Fabianski from 12 yards after being picked out by a brilliant cross from Davis down the right.
In the opening minutes of the second half Saints also had a good opportunity to score from a header, as Ryan Bertrand’s ball from the left picked out Romeu at the near post area, but he got his header wrong, flicking it across goal and well wide.
Saints did get the ball in the net in the 57th minute, only to have it chalked off. José Fonte challenged Fabianski for a Ward-Prowse cross, with the loose ball then dropping to Pellè to prod home from close range, but referee Jon Moss ruled that Fonte fouled the Swans keeper to force the ball out of his grasp.
Koeman made his first change just after the hour, sending on Cédric for Romeu, before Clasie went into the book for a foul on Sigurdsson.
Long tested Fabianski midway through the half, with a turn and shot from just outside the area, but the Swans keeper was equal to it, diving to his right to hold the low effort.
He couldn't keep out Long's header in the 70th minute, however, as Ward-Prowse's brilliant delivery picked out the striker in the middle and his header across goal was too hot for Fabianski to handle, with the ball squirming past him, into the corner.
Koeman then sent on Charlie Austin for Pellè, before replacing Targett with Maya Yoshida, who survived a 90th-minute penalty shout, as Alberto Paloschi went to ground under his challenge. Fortunately for Saints, Moss did not see anything wrong with it.
Austin nearly sealed it with a deflected effort seconds later, only for Fabianski to make a spectacular save to tip the ball wide, with Ward-Prowse then booked for time wasting, but it mattered not, as Saints held on to continue their fantastic run.
Swansea City (4-2-3-1): Lukasz Fabianski; Àngel Rangel (Kyle Naughton 66), Federico Fernandez, Ashley Williams, Neil Taylor; Jack Cork, Leon Britton (Bafetimbi Gomis 73); André Ayew, Gylfi Sigurdsson, Wayne Routledge (Modou Barrow 61); Alberto Paloschi.
Unused substitutes: Kristoffer Nordfelt, Jordi Amat, Ki Seng-Yeung, Leroy Fer.
Southampton (3-5-2): Fraser Forster; Virgil van Dijk, José Fonte, Ryan Bertrand; Steven Davis, James Ward-Prowse, Jordy Clasie, Oriol Romeu (Cédric 63), Matt Targett (Maya Yoshida 85); Shane Long, Graziano Pellè (Charlie Austin 74).
Unused substitutes: Maarten Stekelenburg, Sadio Mané, Dušan Tadić, Juanmi.
Goals: Long (70).
Bookings: Romeu, Clasie, Ward-Prowse.
Referee: Jon Moss
Attendance: 20, 890.