The two teams looked to be heading for a draw at St Mary's, with an own goal from Jan Bednarek cancelling out an opener from Carlos Alcaraz to leave the sides level heading into the closing stages.
However, Joao Gomes came up with a winner for Wolves in the 87th minute, with the result moving Julen Lopetegui's side into 15th spot in the table, while Southampton remain bottom on 15 points.
Nathan Jones's side, who have now lost their last three Premier League games, took the lead in the 25th minute of the match through Alcaraz, with the 20-year-old finding the bottom corner off the inside the post after the ball had broken to him just inside the penalty box.
It went from bad to worse for Wolves in the 27th minute, with Mario Lemina picking up a second yellow card for protesting a decision from the referee, who felt that the midfielder was showing dissent.
The visitors came close to levelling early in the second period when Pablo Sarabia's shot deflected off James Bree and dropped towards the top corner, but it just went behind for a Wolves corner.
Southampton had a chance of their own in the 55th minute when Kamaldeen Sulemana raced into a one-on-one situation with Jose Sa, but the Wolves goalkeeper was on hand to make a smart save.
Sulemana then headed a James Ward-Prowse cross over the crossbar from close range, with the score still 1-0 to the home side approaching the final 30 minutes of action at St Mary's.
Wolves managed to level the scores in the 73rd minute, though, with Bednarek turning the ball into the back of his own net after failing to sort out his feet when Adama Traore had poked towards goal.
The visitors then won it in the 87th minute, with Gomes picking out the top corner with a brilliant effort after seeing his initial shot blocked on the edge of the box.
Next up for Southampton is a trip to Chelsea next Saturday, while Wolves will continue their Premier League campaign against Bournemouth on the same afternoon.