Defending champion Judd Trump is out of the China Open after losing 5-3 to Iranian world number 76 Hossein Vafaei in the quarter-finals.
Vafaei, 22, won the first two frames and made a century break in the fourth to take a 3-1 lead before world number two Trump, 27, hit back to level.
But Vafaei made a superb break of 106 in the seventh frame before edging the eighth to secure victory.
He will now face Mark Williams in his first ever ranking semi-final.
Williams saw off fellow former world champion Shaun Murphy 5-1.
World number one Mark Selby was a 5-1 winner against Stephen Maguire to set up a meeting with Kyren Wilson, who beat China's Ding Junhui by the same score.
Saturday's semi-final draw
Hossein Vafaei v Mark Williams
Kyren Wilson v Mark Selby