Jack Lisowski held off a stirring fightback from Mark Selby to reach the final of the World Grand Prix.
Lisowski, 29, was 5-1 up following a number of half-century breaks before Selby won three consecutive frames, including a break of 143 in frame seven – the highest of the tournament so far.
But world number 15 Lisowski pounced on a Selby mistake in the 10th frame to beat the three-time world champion 6-4.
Lisowski faces world number one Judd Trump in the final in Milton Keynes.
Trump, 31, thrashed Ronnie O’Sullivan 6-1 in the other semi-final.