Milan have their first corner of the game in the final minute of stoppage time, and Tatarusanu is up from the back. Bennacer swings it in, but Mbemba heads it off the back of a Milan player to win a goal-kick.
90' +3
Milan are throwing everything forward now as they try to salvage a late point. Ibrahimovic pulls it back to Calabria on the edge of the box from the left, but the captain drags at his shot and sends it well wide of the target.
90' +1
M. Grujić enters the game and replaces Otávio.
Final change for Porto now as Grujic comes on in place of Otavio.
90'
Rafael Leão gets yellow.
Leao is late as he tries to nick the ball off Otavio and he stands on the winger's foot. He's the latest player to have his name taken by the referee.
87'
Z. Ibrahimović gets yellow.
Ibrahimovic tries to bring it down but catches Mbemba in the face with a very high boot. He's claiming he made contact with the ball, but he's booked.
86'
Milan just can't get out of their own half at the moment and when they do get out from the back, they're slow in their passing. Bennacer eventually tries to go long to Ibrahimovic, but it's cut out by Mbemba.
84'
Toni Martínez enters the game and replaces M. Taremi.
Porto are making another change now and it's Martinez that's coming on for Taremi.
82'
D. Maldini enters the game and replaces R. Krunić.
Final roll of the dice for Milan here as Krunic is taken off and replaced by Maldini.
81'
P. Kalulu gets yellow.
Corona gets the better of Kalulu down the right again and the defender is late with his tackle. He protests his innocence but is still shown a yellow card.
Minute
Description
80'
There are big shouts for a penalty from the Porto fans and Corona as the substitute goes to ground in the box. He made a great run down the right before cutting inside and there's a coming together between him and Kalulu. There's not a lot in it though and the referee waves play on.
79'
Taremi is slid in just outside the box and he tries to flick it into Otavio on the edge of the box. They're not on the same wavelength though and it ends up rolling straight to Tatarusanu.
77'
Bennacer floats a free-kick in from the left and Porto initially clear it before Ibrahimovic floats it back into the middle. Kjaer brings it down, but can't sort his feet out in time to tee up Saelemaekers, and Sanusi gets it away.
75'
Diaz breaks away from Calabria down the left again and cuts inside before fizzing a dangerous cross into the box. There's no one waiting in the middle for Porto though, and it's an easy clearance for the keeper.
73'
Milan have another chance to break here, with Saelemaekers starting to find a lot more space down the right. Again, Milan are caught out by Porto's high line and the offside flag goes up against Krunic.
71'
Milan are trying to push for an equaliser here and Saelemaekers curls another good cross into the middle from the right. Ibrahimovic brings it down with a good first touch, but the offside flag is quick to go up against him.
69'
Milan are all over the place at the back again and Taremi is allowed to carry the ball to the edge of the box under no pressure. He has space to go for goal but tries to slide it through to Diaz instead, playing it straight into Tatarusanu's gloves.
67'
Vitinha enters the game and replaces Sérgio Oliveira.
J. Corona enters the game and replaces Evanilson.
Porto are making a double change here and Evanilson is the first to go off, with Corona on for him.
Oliveira is also being taken off, with Vitinha on in his place.
66'
T. Bakayoko enters the game and replaces S. Tonali.
Fourth change for Milan now and it's Tonali that's making way for Bakayoko.
65'
L. Díaz has scored a goal for Porto! Assist by M. Taremi.
DIAZ SCORES! It's great play from Joao Mario down the right as he wrongfoots Kalulu and whips a cross into the box. Milan just don't deal with it and it pinballs around before falling to Diaz. He hits the shot first time, drilling it into the bottom corner. Milan are saying there was a foul in the build-up, but nothing is given and the goal stands. 1-0 Porto!
Taremi backed into Bennacer, which is what Milan wanted the foul to be given for, but he brought the ball down and touched it to Diaz.
63'
Evanilson takes the ball around three Milan defenders as he pushes forward down the right and he has Taremi and Otavio to aim for in the middle. It's a poor cross though, and Kjaer comes away with it.
61'
It's good hold-up play from Ibrahimovic initially, and he manages to get the ball through to Tonali. He threads the ball through for Saelemaekers, who wins a free-kick in a good position after he's fouled by Pepe, but it's first over by Ibrahimovic.
59'
And Tomori is the last to make way, with Romagnoli on for him.
58'
P. Kalulu enters the game and replaces F. Ballo-Touré.
A. Romagnoli enters the game and replaces F. Tomori.
Z. Ibrahimović enters the game and replaces O. Giroud.
Milan are making a triple change here and Ballo-Toure is the first to make way, with Kalulu coming on to replace him.
Ibrahimovic is also being brought on in place of Giroud.
54'
Krunic is dispossessed by Otavio and he sets his side on the counter. He slides it through to Oliveira, who then picks out Diaz in space on the left, but his curling shot is blocked by Kjaer.
50'
Milan win a free-kick through the middle, and although it's a long way out, Tonali decides to go for goal directly. It's a poor attempt from him though as he fires it straight into the wall.
46'
Z. Sanusi enters the game and replaces Wendell.
Wendell, who picked up a knock towards the end of the first half, doesn't come back out and is replaced by Sanusi.
Milan get us back under way for the second half!
45' +3
HALF-TIME: PORTO 0-0 MILAN.
43'
Milan have finally registered their first effort on goal after Saelemaekers fizzed a cross into the box from the right. Giroud got in front of Pepe to flick a header on goal, but it's straight down the middle at Costa.
40'
It looked like Wendell twisted his knee in an attempt to nick the ball off Leao, and he's stayed down. The medical team are waved on by the referee and he's receiving treatment now.
38'
M. Uribe gets yellow.
Uribe runs across the back of Saelemaekers to bring him down and is booked for the challenge.
36'
Another hasty clearance by Tatarusanu is cut out by Oliveira in midfield and he nods the ball back to the edge of the box. Taremi makes a late run onto it but is just beaten to it by the goalkeeper.
34'
Tonali breaks forward on the counter, with the referee playing a good advantage to the hosts. Joao Mario gets back to win possession with a perfectly timed tackle before he's dragged back by the midfielder, and Milan's frustration is clear to see.
32'
Joao Mario drives forward down the right before flicking it to Otavio, who swings a great cross into the box. Diaz goes for the overhead kick in the middle, but it ends up bouncing off his shin and high over the crossbar.
26'
Milan are trying to play out from the back and Tatarusanu gets lucky with another clearance as Evanilson applies the pressure again. It's patient play from the visitors, but they just can't keep hold of the ball when they push out of their own half.
24'
CLOSE! Leao gives away a free-kick on the right and Oliveira swings in a great cross from the free-kick. Taremi rises above everyone else in the box and flicks a header towards goal, but it's just wide of the near post.
22'
Milan just can't keep hold of the ball at the moment as the hosts break forward again. It starts with Mbemba at the back, who goes long to Taremi. He plays a one-two with Otavio to get around Tomori before drilling a shot on goal which is blocked by Kjaer.
20'
O. Giroud gets yellow.
Giroud can't control the ball as he chests it down and he ends up stepping on Mbemba's foot in his attempts to keep possession. He's shown a yellow card, much to his disbelief.
16'
F. Tomori gets yellow.
Tomori is trying to catch up to Evanilson and ends up clipping the back of his heels, bringing him down. He's shown a yellow card.
15'
Calabria is caught on the ball by Wendell, and he plays a one-two with Evanilson as he cuts inside from the left. He lays it off to Otavio on the edge of the D, but a heavy first touch takes it away from him and he can't have a shot.
13'
Porto's high press is causing Milan all sorts of problems at the back as the keeper sells Tomori short this time and he has to rush his clearance. The hosts take a quick throw-in, and Otavio ends up winning a free-kick, but it comes to nothing.
11'
Tatarusanu rushes to clear his lines due to Evanilson's pressure, and he plays a loose pass straight into Otavio. He swings an early cross into the box, but can't pick out a team-mate as Ballo-Toure clears the danger.
9'
Wendell flies in to try and intercept the pass out to Saelemaekers but gets it all wrong and the winger has acres of space to run into. He squares it to Leao on the edge of the box, who sends it over the bar in his attempt to float it into the far post.
7'
Porto are still keeping the pressure on Milan here as Oliveira chips a lovely pass over Tomori to pick out Evanilson's run. He can't find space for a shot, so squares it out towards Taremi, but Tonali is back to block it.
3'
Sérgio Oliveira gets yellow.
Porto thought they should've had a free-kick, but when Saelemaekers breaks on the counter, Oliveira sticks out a leg to stop his run and it earns him an early yellow card.
2'
Calabria wins a free-kick just inside Porto's half on the right, and Bennacer switches it out to Leao from the set-piece. He tries to knock it past Joao Mario to get in behind, but the defender makes a good interception.
1'
Evanilson gets the game under way for Porto!
Hello and welcome to live coverage of the Champions League Group B meeting between Porto and Milan at the Estadio do Dragao!
PORTO STARTING XI (4-4-2): Diogo Costa; Joao Mario, Chancel Mbemba, Pepe, Wendell; Otavio, Mateus Uribe, Sergio Oliveira, Luis Diaz; Mehdi Taremi, Evanilson.
PORTO SUBS: Pepe, Toni Martinez, Corona, Marko Grujic, Vitinha, Zaidu Sanusi, Fabio Vieira, Francisco Conceicao, Bruno Costa, Wilson Manafa, Agustin Marchesin, Ivan Marcano.
MILAN STARTING XI (4-2-3-1): Ciprian Tatarusanu; Davide Calabria, Simon Kjaer, Fikayo Tomori, Fode Ballo-Toure; Sandro Tonali, Ismael Bennacer; Alexis Saelemaekers, Rade Krunic, Rafael Leao; Olivier Giroud.
MILAN SUBS: Daniel Maldini, Pierre Kalulu Kyatengwa, Sebastiano Desplanches, Tiemoue Bakayoko, Andreas Jungdal, Zlatan Ibrahimovic, Alessio Romagnoli, Matteo Gabbia.
The teams are out on the pitch, with kick-off just moments away!
Milan have had a tough return to the Champions League, losing both of their games so far against Liverpool and Atletico Madrid despite having held the lead in those matches. They are still unbeaten in Serie A, winning their last two outings in that competition, as Stefano Pioli looks to try and recreate that form in Europe. Porto are also beaten in their domestic league (W6 D2) but are yet to win in this competition after drawing their opening game with Atletico before suffering a heavy defeat to Liverpool last time out.
Milan's frustration was on show as they struggled to get into the game for large parts of the first half, but Pioli will know they need to try and win this to stay close to the top two in this group. As for Porto, Conceicao will wonder how they're not ahead and will be hoping their pressure will eventually result in a goal if they can keep it up.
That's all for today, goodbye!
It's a big three points for Porto, and while they stay in third, they're now level on points with Atletico. They meet Milan again in two weeks' time, but before that, they play Tondela in the Primeira Liga. That's three losses in a row for Milan in the Champions League, leaving them bottom of Group B. Next up for them is Bologna in Serie A.
Commentary
More…