Match ends, Luxembourg 1, Portugal 3.
Diogo Jota and Cristiano Ronaldo scored to help spare Portugal's blushes and deny Luxembourg another major World Cup 2022 qualifying win.
Luxembourg beat Republic of Ireland on Saturday and led the European champions through Gerson Rodrigues' header.
But Liverpool forward Jota headed home in the final attack of the first half.
Ronaldo tapped in early in the second half to turn the tide in Portugal's favour, with Joao Palhinha glancing in a header to seal the win.
Before that Jota had gone close with a header that hit the bar, while Ronaldo could have had a second goal himself, but failed twice to beat home goalkeeper Anthony Moris after running clear of the defence.
What at one stage looked to be a night of such promise for Luxembourg ended with them reduced to 10 men as Maxime Chanot was shown a second yellow for a foul on Renato Sanches.
The win takes Portugal to seven points in qualifying Group A, level with Serbia, with whom they controversially drew 2-2 at the weekend.
- 2ChanotBooked at 86mins
- 17PintoSubstituted forMartins da Graçaat 66'minutes
- 11ThillSubstituted forDevilleat 58'minutes
- 8Martins PereiraSubstituted forSkenderovicat 87'minutes
- 16Barreiro Martins
- 15ThillSubstituted forThillat 58'minutes
- 9SinaniSubstituted forMuratovicat 87'minutes
- 22Martins da Graça
- 6José Fonte
- 4Rúben DiasBooked at 70mins
- 5Nuno Mendes
- 18NevesSubstituted forOliveiraat 89'minutes
- 16Renato SanchesBooked at 83mins
- 10Bernardo SilvaSubstituted forJoão Palhinhaat 68'minutes
- 23João FélixSubstituted forNetoat 41'minutes
- 17JotaBooked at 38minsSubstituted forFerreira Silvaat 68'minutes
- 7Cristiano Ronaldo
- 2Novo Neto
- 3Coutinho Meneses Duarte
- 9André Silva
- 11João Palhinha
- 15Ferreira Silva
- 21Cédric Soares
- 22Dantas da Silva
- Sergei Ivanov
- Shots on Target
Second Half ends, Luxembourg 1, Portugal 3.
José Fonte (Portugal) wins a free kick in the defensive half.
Foul by Edvin Muratovic (Luxembourg).
Substitution, Portugal. Sérgio Oliveira replaces Rúben Neves.
Substitution, Luxembourg. Edvin Muratovic replaces Danel Sinani.
Substitution, Luxembourg. Aldin Skenderovic replaces Christopher Martins Pereira.
Second yellow card to Maxime Chanot (Luxembourg) for a bad foul.
Renato Sanches (Portugal) wins a free kick on the left wing.
Foul by Maxime Chanot (Luxembourg).
Renato Sanches (Portugal) is shown the yellow card for a bad foul.
Foul by Renato Sanches (Portugal).
Danel Sinani (Luxembourg) wins a free kick on the right wing.
Goal! Luxembourg 1, Portugal 3. João Palhinha (Portugal) header from very close range to the top right corner. Assisted by Pedro Neto with a cross following a corner.
Corner, Portugal. Conceded by Maxime Chanot.
Offside, Portugal. Rafa tries a through ball, but Cristiano Ronaldo is caught offside.
Attempt saved. Cristiano Ronaldo (Portugal) right footed shot from the centre of the box is saved in the centre of the goal.
Attempt saved. Cristiano Ronaldo (Portugal) right footed shot from the centre of the box is saved in the bottom left corner.
Foul by Cristiano Ronaldo (Portugal).
Lars Gerson (Luxembourg) wins a free kick in the defensive half.
- Ma Copley: Belfast's biggest boxing promoter that no-one saw coming
- Food Envy: Must-make TikTok recipes to inspire your cooking this week