Rovers had the perfect start when Gareth Edds headed back a free-kick from Paul McLaren for Marlon Broomes to head in from close range inside three minutes.
But Saints were level soon after when Ian Goodison blocked an Adam Lallana effort on the line and the ball ran to Lee Barnard, who found the left corner from eight yards.
Rickie Lambert missed a sitter from Jason Puncheon's cross and was off target with another effort eight minutes later.
Kelvin Davies in the Southampton goal saved comfortably from Craig Curran just after the hour, while at the other end Luke Daniels did well to hold a close-range effort by Lallana and even better to block a close-range shot by Barnard.
But Tranmere regained the lead with a well struck Thomas-Moore penalty dubiously awarded when Dan Seaborne impeded Edds in the 84th minute, before holding firm for three impressive points.