A Cristiano Ronaldo hat-trick has fired hosts Portugal into the inaugural UEFA Nations League final.
The Euro 2016 champions beat a spirited Switzerland 3-1 at Porto's Dragao to advance.
Twenty five minutes in, Portugal were ahead.
And it was their talisman Ronaldo who gave them the lead with a free-kick into the top corner from 25 yards out.
The Swiss equaliser came on 56 minutes but it was awarded in convoluted fashion.
Portugal won a penalty at one end of the pitch. But via VAR, referee Felix Brych went back to a penalty incident that had occurred at the other end.
He subsequently awarded a penalty to Switzerland after reviewing footage of an incident between Nelson Semedo and Steven Zuber.
Ricardo Rodriguez converted the penalty to make it 1-1.
But Ronaldo proved decisive once again as the game ticked towards extra-time.
With 87 minutes gone, the Juventus attacker latched onto a low cross from the right and finished low into the net.
Mere seconds later, he had his third, cutting in from the left and curling on target.
Portugal will now meet England or Netherlands in the final, with the latter two in action in Guimarães on Thursday.