Southampton FC survived a second-half fightback to scrape through the FA Cup third round with a 3-2 win at League One strugglers Doncaster Rovers.