Manchester City will finish top of Group C, but were held to their first-ever goalless draw in the Champions League group stages by Porto, who have also qualified for the last 16
Having made seven changes from the 5-0 thrashing of Burnley on Saturday, it took a while for Man City to find their feet at the Estadio do Dragao, not having their first shot until the 37th minute when Raheem Sterling had a shot cleared off the line by Zaidu Sanusi
They had more clear-cut chances after half-time and thought they had secured three points when Gabriel Jesus (80) poked home from yet another Agustin Marchesin save late on, but VAR ruled the goal out for a Rodri offside in the build-up
It is the second time Man City have failed to score this season - having also been held by Tottenham just over a week ago - but they did keep a fourth successive Champions League clean sheet and maintain their unbeaten European run
A point suited both teams on the night too with Pep Guardiola's side securing top spot in Group C ahead of the final games next Wednesday, while Porto have also guaranteed their place in the knockout round
It was a first half that will not live long in the memory
 There were only four shots between the two sides in the opening period and it was a classic situation for Man City, dominating possession with Porto sitting deep, waiting for the counter
But it was actually City who could have scored on the break in the 22nd minute
 Porto went close at one end, with Ederson scooping away a flick header from Diogo Leite, before Fernandinho set City away in a wonderful team move
 Phil Foden's eventual pass for Ferran Torres was wonderful, but Marchesin was out to deny the latter with an outstretched foot
Sterling went closest for Man City in the final 15 minutes of the half
 Marchesin cleared a Bernardo Silva rabona pass towards him, but Sterling could not get the ball under control
 Then, some sensational defending from Chelsea loanee Malang Sarr saw him dink the ball from Sterling's path with a poke toe from behind, with the forward looking to be through on goal
The England international finally had the first shot of the half in the 37th minute
 Man City recycled a cleared corner with Sterling chasing the ball down on the left flank
 He darted past Otavio Monteiro before sending a low strike through a packed area, but his effort was booted off the line by the waiting Sanusi
It was a similar story in the second half, but Man City had more clear-cut openings
 Both Sterling and Torres went close in the 58th minute, and it all started with a visionary pass from Foden to pick out Sterling's run
 However, Marchesin came racing off his line to smother the latter's effort before the loose ball fell to Torres
 However, he dallied over it and Wilson Manafa came in to nick the ball away from his path
It again took some incredible luck and goalkeeping from Marchesin to keep Man City out shortly after
 Fernandinho whipped a ball across the face of goal, with Sterling waiting to hook it on
 Ruben Dias was on the goal-line, but could only send it backwards as the waiting Torres' overhead shot went straight at the goalkeeper, who pushed it away at point-blank range
Marchesin was again Porto's saviour as the clock ticked past the 75-minute mark
 Silva put in some superb work on the right flank, leaving Sanusi on the floor before cutting into the area, but his shot went straight at the goalkeeper
 Not long after, Garcia tried his luck but again, Marchesin stopped him from close range
Man City thought they had nicked the win on the 80-minute mark
 Silva floated a wonderful cross into the area, which Jesus nodded goalwards
 However, Marchesin pushed it onto the crossbar and it bounced over the right side of the line for the goalkeeper
 But the City striker was lurking to bundle the ball home past Marchesin's outstretched hand
However, VAR intervened with a review and noticed that Rodri - who had supplied Silva before his cross - was offside when he received the ball and the goal was ruled out
Man City continued to push for another goal in some frantic final minutes, but a point was ultimately enough for them on the night
It takes a lot to stop Man City from scoring, but Marchesin had the performance of his life on Tuesday to do just that
 He made save after save as Guardiola's side hunted for goals, timing his bursts off the line to perfection at certain points
He was particularly impressive from point-blank range, denying Torres and Garcia late on, and made a total of five saves overall
 Was there a little bit of luck in Porto's draw? Undoubtedly, but Marchesin was a very close second as he helped steer Porto into the last 16
Man City manager  said: "Incredible congratulations to the team for this group stage
 We played incredibly well
 We didn't concede one corner or one shot on target in Europe away against Porto, who alongside Benfica, are the best team in Portugal with an incredibly physical team
"Unfortunately we couldn't score, but we created chances with set-pieces and actions and all the players were fantastic, starting with Edie (Ederson) and finishing with Phil
"We came here to finish first, we played for a win [against Porto], we deserved to win but in football, deserved or not deserved are just fake words
 At the end, the results dictate everything but we played to win the game
"The shots, maybe not all on target, but we were there all the time
 It's difficult with eight or nine players defending in the box, defending crosses and everything
 Against Marseille, we can play with different ways or different people or whatever, which is good for us
 Now we can focus 100 per cent in the Premier League
"Porto manager  said: "We achieved qualification with an impressive series of games on our part
"It is our 16th time in the round of 16, more than double that of all other Portuguese teams
 We carry the name of Portugal in Europe very high
"We showed good moments of defensive organisation tonight, although it was difficult to get up front as we wanted - much because of City, who react well when they lose the ball
" told : "Porto were stubborn defensively and City didn't create much until Gabriel Jesus came on
 Marchesin made four or five great saves too
 But it's job done for City - they can rest a few players against Marseille with an eye on that Manchester derby
"Man City will next be in action on Saturday when they welcome Fulham in the Premier League; kick-off 3pm
 They play at home again next Wednesday when they welcome Marseille in their final Champions League group game; kick-off 8pm
Porto will host Tondela in the Portuguese Primeira Liga on Saturday evening before travelling to Olympiakos next week; kick-off 8pm
<PAD>
<PAD>
<PAD>
<PAD>
<PAD>
<PAD>
<PAD>
<PAD>
<PAD>
<PAD>