Silvestre Varela had given the competition holders the lead in the first half, but an Alvaro Periera own goal and a late strike from substitute Sergio Aguero sealed victory for the English team.
Roberto Mancini praised his players for overcoming would could have been a potential banana-skin fixture.
“I think that we played a good game,” he told ITV after the game.
“We played very well. In the first half we had three or four chances to score and we were unlucky but in the second half we played very well.
“I told them only to play as we know how. In the second half maybe we played higher (up the pitch) but we had seven or eight chances to score and more importantly we didn’t give Porto which is important because Porto are a top team,” he concluded.
City have the weekend off due to their elimination from the FA Cup, and take on the Portuguese champions again next Thursday.
By Gareth McKnight