Martin Gould stunned world number one Judd Trump 6-3 to secure a place in the final of the European Masters in Milton Keynes, where he will face Mark Selby.
Gould, ranked 53, had earlier fought back to beat Yan Bingtao 5-4 in their quarter-final during the afternoon session.
The 39-year-old Londoner maintained his momentum with a determined display to reach a first ranking final since 2016.
Trump saw off World Championship finalist Kyren Wilson 5-2 in the afternoon with two century breaks at the Marshall Arena.
The 2019 world champion had not been behind in any of his matches this week, but that run was to end when Gould, having twice levelled from a frame down in the early stages, won the fifth to go 3-2 up.
Trump restored parity again in the sixth frame with a clearance of 89, only for Gould to respond once more by winning the seventh and eighth before clinching victory with a 102 break in the ninth.
Selby progressed to Sunday's final after beating Shaun Murphy 6-3, with four half-century clearances.
The world number four had earlier come from behind to defeated Ding Junhui 5-1 in their quarter-final match.
Murphy, meanwhile, edged out defending champion Neil Robertson 5-4 in a tense quarter-final.
Selby, a three-time world champion, rolled off breaks of 84 and 65 to open up a 2-0 lead over Murphy and another half-century run helped move him 4-1 ahead.
Murphy rallied to reduce the deficit with a break of 60 and then edged a close eighth frame, but Selby closed out victory to reach the European Masters final for the first time.
Elsewhere, Mark Davis revealed his cue had been returned after it was stolen from his car which resulted in him withdrawing from the tournament ahead of a third-round match against Selby.
The 48-year-old, ranked 39 in the world, had offered a reward for the return of the cue, which he had used for some 20 years.
Davis was contacted by a member of the public via e-mail late on Friday evening, and the cue has now been returned.
In a post on Facebook, Davis said: "Just to let you know, I have got the cue back now.
"Just want to say thank you to everyone who shared the message about it and helped to get it returned. Thanks again."