Cristiano Ronaldo scored on his home island of Madeira, a day before the local airport is to be named in his honour, as Portugal surrendered a two-goal lead to lose to Sweden.
Portugal led through Ronaldo’s 71st international strike and an Andreas Granqvist own goal.
But a Viktor Claesson double and Cavaco Cancelo’s injury-time own goal secured a remarkable turnaround for the Swedes.
Ronaldo is expected to attend a naming ceremony at the airport on Wednesday.
The 32-year-old Real Madrid star, who captained his country to become European champions last year, was born in the Madeira capital of Funchal before joining Sporting Lisbon and then Manchester United.
Some local politicians had opposed the decision to change the name of Madeira Airport to Cristiano Ronaldo Airport.
“Sometimes, national gratitude has short memory, but Madeira doesn’t,” Miguel Albuquerque, the president of the Madeira government, said when the name change was announced last year.
Funchal already has a Ronaldo statue and museum, as well as a hotel complex in honour of the Portugal captain.
This was his first appearance for Portugal on his home island, where he paraded the European Championship trophy before kick-off.
But the celebration was somewhat tarnished by a superb Sweden comeback, earning them a third consecutive international win.
Both sides are second in their respective World Cup qualifying groups at the midway point.