South Korea snatch dramatic late win over Portugal to reach last 16