Karimi snatched a 77th-minute winner as the three-time champions exacted revenge for a 2-1 defeat by the Koreans at the same stage of the competition four years ago.
Iran will play hosts China in the last four on Tuesday.
Playmaker Karimi twice put Iran ahead in the first half but 2002 World Cup semi-finalists Korea hit back through Seol Ki-hyeon and Lee Dong-gook, who scored his fourth goal of the Asian Cup in the 25th minute to make it 2-2.
Iran went in front again through an own goal by Park Jin-sub six minutes after the break only for Kim Nam-il to equalise in the 68th minute with a fine strike from the edge of the box.
But with 13 minutes left, Karimi arrived at the near post to flick a Mehdi Mahdavikia free kick past goalkeeper Lee Woon-jae and tied Lee Dong-gook as tournament top scorer with four goals.
South Korea, who who have not won the Asian Cup since 1960, pushed forward in the last 10 minutes but were left shattered as Iran held firm to set up an intriguing clash with China.