India defeated Afghanistan by eight wickets to reach the U-19 Asia Cup final against Pakistan.