Ronald Koeman had made it clear after the draw at Everton last weekend that Saints could not afford to drop any more points in their bid for a second consecutive top-seven finish.
His players responded, as Shane Long’s header gave Saints a 15th-minute lead, before Dušan Tadić added a second with just five minutes left of the first half to put the visitors in control.
But a defensive lapse allowed Villa to pull one back through Ashley Westwood just before the break. A second for Tadić with 20 minutes remaining looked to have made the points safe for Saints, but Westwood’s second set up a tense final five minutes.
Koeman’s men would add a fourth deep into stoppage time to wrap up the win, as substitute Sadio Mané headed home.
It was a trip to the Midlands back in September in which Jay Rodriguez last started a league game, when Saints drew 0-0 with West Bromwich Albion. He was one of four changes made by Koeman, as the striker started for the first time since returning from his foot injury.
Steven Davis, Cédric and Oriol Romeu were the other three to come into the starting line-up, with Cuco Martina, Jordy Clasie, Graziano Pellè and Mané all dropping to the bench.
Koeman had urged his players to show more productivity in the final third on the road, and they created a brilliant chance within the opening two minutes of the game.
Rodriguez challenged with Micah Richards and flicked the ball on for Long, who rode the challenge of Joleon Lescott, but fired his effort against the crossbar.
The in-form Irishman would not be denied just before the 15-minute mark, as he was left unmarked in the six-yard box to head home easily from Ryan Betrand’s cross.
The despondent home faithful were almost lifted when a cross from Alan Hutton found Leandro Bacuna in the penalty area, but the winger’s header drifted just wide of Fraser Forster’s goal.
Saints were proving a constant threat going forward, and were left frustrated again with 30 minutes gone, as the base of the post denied defender Virgil van Dijk.
Saints would not be denied a second just five minutes before the break, however. After Long had been halted in his tracks by Brad Guzan, the striker recovered the loose ball and teed up Tadić, who stroked the ball home first time.
That should have seen Saints in complete control at the break, but Villa responded on the stroke of half time as Jordan Ayew’s cross found Westwood, and he found the far corner to make it 2-1.
The first real opportunity of the second half fell Saints’ way. Van Dijk’s persistence afforded Cédric the time to cross and pick out Rodriguez, but Lescott blocked the forward’s volley superbly.
After relying on his defender to prevent a third goal for Saints, Villa stopper Guzan then produced two excellent stops of his own, firstly denying Long, and then doing well to push away Davis’s clever free-kick that seemed destined for the top corner.
The third goal finally arrived with just under 20 minutes remaining. Long was once again the provider, as he teed up Tadić, who rolled the ball beyond Guzan for his eighth goal of the season.
Westwood’s composed finish from the edge of the box, after Saints had failed to clear a corner, set up a nervous final five minutes for the visitors, as he made it 3-2.
Long had another chance to wrap the game up late on, but it was Mané who made sure of the points as he headed home a cross from Cédric to ensure Saints of a seventh away win of the campaign.
Aston Villa: Brad Guzan (GK), Alan Hutton, Micah Richards (c) (Kevin Toner 46), Joleon Lescott, Aly Cissokho, Leandro Bacuna, Idrisa Gana-Gueye, Ashley Westwood, Carlos Sanchez (Jack Grealish 68), Scott Sinclair, Jordan Ayew (Rudy Gestede 59).
Unused substitutes: Mark Bunn (GK), Jordan Veretout, Carlos Gil, Jordan Lyden.
Goals: Westwood (45+1 & 85)
Southampton: Fraser Forster (GK), Cédric, José Fonte (c), Virgil van Dijk, Ryan Bertrand, Victor Wanyama (Jordy Clasie 46), Oriol Romeu, Steven Davis, Dušan Tadić, Shane Long, Jay Rodriguez (Sadio Mané 70).
Unused substitutes: Maarten Stekelenburg (GK), Maya Yoshida, Cuco Martina, James Ward-Prowse, Graziano Pellè.
Goals: Long (15), Tadić (40 & 72), Mané (90+4)
Referee: Mike Jones