West Indies beat South Africa by three wickets in Nagpur on Friday to qualify for the semi-finals of the World Twenty20.