Southampton pulled off an FA Cup upset, beating Arsenal 1-0 with a late goal from Shea Charles in the 85th minute to secure their place in the semi-finals.