Match ends, Roma 2, FC Porto 1.
Nicolo Zaniolo's two goals gave Roma the edge over Porto in their Champions League last-16 first leg.
The teenager, one of Roma's few bright sparks in a poor season, controlled Edin Dzeko's pass before drilling a low effort past Iker Casillas.
He added a second from six yards out after Dzeko's 20-yard shot hit the post.
But Porto got an away goal when Adrian Lopez scored after Tiquinho Soares' mis-hit shot landed in his path.
Roma, who are sixth in Serie A, had the better chances, with Dzeko having a shot tipped on to the post by Casillas.
It is a first defeat for Porto - excluding penalty shootouts - in 27 games. They had won their last five Champions League matches to come through the group stages unbeaten.
The second leg in Porto is on Wednesday, 6 March.
Who is Zaniolo?
Roma signed Zaniolo from Inter Milan for £4m (4.5m euros) in the summer as part of the £33m move that took Radja Nainggolan in the other direction.
Called up to the Italy squad before even making a Serie A appearance, he made his Roma debut against Real Madrid in the Champions League in September.
He has gone on to make 22 appearances, scoring five goals - two more than Nainggolan has managed for Inter Milan.
Against Porto, he became the youngest Italian player to score two goals in a Champions League game - and came off to a standing ovation with five minutes left.
Line-ups
Roma
Formation 4-3-3
- 83Mirante
- 24Florenzi
- 44Manolas
- 20Fazio
- 11Kolarov
- 4Cristante
- 16De Rossi
- 7PellegriniSubstituted forNzonziat 83'minutes
- 22ZanioloSubstituted forSantonat 87'minutes
- 9Dzeko
- 92El ShaarawyBooked at 88minsSubstituted forKluivertat 90'minutes
Substitutes
- 1Olsen
- 5Nunes Jesus
- 15Marcano
- 18Santon
- 27Pastore
- 34Kluivert
- 42Nzonzi
FC Porto
Formation 4-4-2
- 1Casillas
- 3Militão
- 28Felipe
- 33Pepe
- 13Alex Telles
- 25OtávioSubstituted forSantos Fortesat 84'minutes
- 22Danilo
- 16HerreraBooked at 74mins
- 8BrahimiSubstituted forLópezat 68'minutes
- 29Francisco Soares
- 37Andrade dos SantosSubstituted forPereiraat 76'minutes
Substitutes
- 2Pereira
- 6Almeida Costa
- 7Santos Fortes
- 10Torres
- 20López
- 21Pereira
- 26Vaná
- Referee:
- Danny Makkelie
- Attendance:
- 51,727
Match Stats
- Possession
- Home43%
- Away57%
- Shots
- Home14
- Away7
- Shots on Target
- Home9
- Away2
- Corners
- Home2
- Away1
- Fouls
- Home11
- Away13
Live Text
Post update
Full Time
Second Half ends, Roma 2, FC Porto 1.
Post update
Attempt saved. Aleksandar Kolarov (Roma) left footed shot from a difficult angle on the left is saved in the centre of the goal. Assisted by Steven Nzonzi.
Substitution
Substitution, Roma. Justin Kluivert replaces Stephan El Shaarawy.
Booking
Stephan El Shaarawy (Roma) is shown the yellow card for a bad foul.
Post update
Eder Militão (FC Porto) wins a free kick in the defensive half.
Post update
Foul by Stephan El Shaarawy (Roma).
Substitution
Substitution, Roma. Davide Santon replaces Nicolò Zaniolo.
Post update
Attempt blocked. Tiquinho Soares (FC Porto) right footed shot from outside the box is blocked. Assisted by Adrián López.
Substitution
Substitution, FC Porto. Hernâni replaces Otávio.
Post update
Eder Militão (FC Porto) wins a free kick in the defensive half.
Post update
Foul by Edin Dzeko (Roma).
Post update
Attempt missed. Héctor Herrera (FC Porto) right footed shot from outside the box is close, but misses to the right.
Substitution
Substitution, Roma. Steven Nzonzi replaces Lorenzo Pellegrini.
Goal!
Goal! Roma 2, FC Porto 1. Adrián López (FC Porto) right footed shot from the centre of the box to the bottom left corner. Assisted by Tiquinho Soares.
Post update
Attempt missed. Tiquinho Soares (FC Porto) right footed shot from outside the box misses to the right. Assisted by Adrián López with a headed pass.
Goal!
Goal! Roma 2, FC Porto 0. Nicolò Zaniolo (Roma) left footed shot from the centre of the box to the centre of the goal.
Post update
Edin Dzeko (Roma) hits the left post with a right footed shot from outside the box. Assisted by Lorenzo Pellegrini.
Substitution
Substitution, FC Porto. André Pereira replaces Fernando.
Post update
Héctor Herrera (FC Porto) wins a free kick in the defensive half.