Kirsty Gilmour will meet Carolina Marin in the final of badminton's European Championships for the second year running.
The 2016 silver medallist from Scotland defeated Switzerland's sixth seed Sabrina Jaquet 22-20 21-10.
Olympic champion Marin, from Spain, will go for a third European title after beating Denmark's Mette Poulsen 21-17 21-12.
Marin holds a 5-1 head-to-head record against Gilmour.
"Marin obviously will be tough but I have a plan and will watch some videos of her matches as final preparation," said 23-year-old Gilmour.
In her semi-final, seventh seed Gilmour trailed for much of the opener but from 12-9 down she hit back for a 15-13 lead only for Jaquet to respond with five successive points to lead 18-15 and then 19-16.
Back came Gilmour with four points in a row. Jaquet saved the first set point but Gilmour took her second chance.
In the second, she moved into a 6-2 lead and did not look back.
"I had the momentum and felt more and more confident from winning the first set and as the second progressed but I never lost focus," added Gilmour.
"I know that no match is over until the final point is decided - not even at a 10-point lead.
"I am not really surprised over my level at this time. Four months after my [knee] operation I played my first tournament at the Scottish Nationals and have been on my steady way back ever since."