After wasting a glut of opportunities, Southampton came from behind to claim a 3-1 victory against relegation-threatened Crystal Palace.