The hosts took the lead in the 29th minute when Gabriel Agbonlahor capitalised on a moment of indecision by Fraser Forster to nick the ball ahead of the keeper and finish into an empty net.
It looked as though it would be enough to give Villa only their second home win of the season until Ryan Bertrand teed up Nathaniel Clyne to level in the 82nd minute.
The draw keeps Saints second, six points behind leaders Chelsea, while Villa climb up a place to 16th.
While Saints manager Ronald Koeman made just the one change to the side that won against Leicester last time out, Villa were forced into three, all in defence.
Alan Hutton, Ciaran Clark and Jores Okore were handed starts, with captain Ron Vlaar, Philippe Senderos and Nathan Baker all out. The defence looked far from make-shift, though, as they restricted Saints to only a handful of opportunities throughout the match.
While the visitors enjoyed more of the possession in the early stages, they too often wasted it when they got into the final third. Villa didn’t fare much better in front of a sparse crowd at Villa Park but they did give their fans something to cheer about when they took the lead in the 29th minute through Agbonlahor.
There looked to be little danger when Clark cleared the ball downfield from midway inside his own half, but some indecision from Forster proved costly. After initially going forward, he went back, before coming out and getting beaten to the ball by Agbonlahor, who finished into an empty net.
It was only the sixth goal Saints had conceded in the league this season and they came close to levelling before the break when Brad Guzan dived to his right to palm away a curling effort from Mane.
But that was a rare test for the American keeper as Saints, who had won their previous league matches in a row without conceding a goal, continued to struggle to break down a dogged Villa defence.
It still didn’t click for them in the second half and they were fortunate not to fall 2-0 behind in the 78th minute when Andreas Weimann fired wastefully over the bar from 10 yards out after a swift counter-attack.
Just minutes later the scores were level as Bertrand showed good strength to get away from Weimann down the left and pulled the ball back for his fellow full-back Clyne to finish from the penalty spot.
It was no more than Saints deserved after enjoying most of the possession but they couldn’t deny Villa a point as the hosts held out for the draw.