The Saints found life difficult against a resolute Yeovil defence but they were out of luck in the 14th minute when a magnificent drive by Rickie Lambert hit the underside of the bar and bounced back into play.
Yeovil almost took the lead after 52 minutes when Andy Williams beat the keeper but saw his shot cleared off the line.
Saints took the lead after 57 minutes when Brazilian substitute Guly Do Prado picked up the ball on the edge of a crowded penalty area and fired low into the right hand corner.
Yeovil battled back and after 64 minutes levelled from the penalty spot. Gavin Williams was brought down by Daniel Seabourne and Virgo scored from the spot.