Sergio Aguero set up victory by extending City’s 2-1 first-leg lead after just 18 seconds at the rainswept Etihad Stadium before hitting the bar later in the first half.
Edin Dzeko came off the bench to add a second after 76 minutes before the sending-off of Rolando preceded further goals from David Silva and David Pizarro in the closing minutes.
Although the decisive goals came late, the result did not flatter the Barclays Premier League leaders.
The Portuguese champions may have controlled the game at times but they lacked a cutting edge and Roberto Mancini’s side always looked more threatening in attack.
The build-up to the match was overshadowed by City striker Carlos Tevez’s apology for his recent conduct while Chelsea’s latest troubles also commanded headlines.
Both issues were again highlighted as Mancini said prior to kick-off he would meet Tevez on Thursday while Chelsea’s under-pressure manager boss Andre Villas-Boas arrived to watch the game.
Villas-Boas won the Europa League with Porto last season but his former club’s grip on the trophy was loosened almost as soon as the game began.
The 5pm kick-off may have been problematic for some fans but the players raced out of the blocks to make the perfect start.
Aguero, who struck six minutes from time last week, started where he left off as he was played through by Yaya Toure and slipped the ball low past Helton.
City looked comfortable for their lead and could have had a second when Silva beat the defence with a brilliant ball for Toure.
Helton rushed out of goal to meet the Ivory Coast midfielder on the edge of the box and spread his body to block his shot.
Porto enjoyed some spells possession but struggled to create meaningful chances until first-leg goalscorer Silvestre Varela found space to test Joe Hart.
Joao Moutinho curled a free-kick over as Porto continued to look for a way back into the tie.
Aguero was unlucky not to score a second as he seized upon a long ball and headed it past the advancing Helton.
It left him at a tight angle wide on the left but his chip was almost perfect as it dropped on to the bar.
Porto again showed composure in possession but did not threaten much around the box, although Lucho Gonzalez fired over.
The powerful Hulk tried to create problems but drove a cross across goal from a good position.
City spurned another chance to extend their advantage as they broke from deep and Aguero released Toure.
Toure appeared to have a good shooting opportunity but he checked back as cover arrived and Aguero drove wide.
Nicolas Otamendi missed the target as Porto went close just before the break.
The game remained open as the second half got under way with Aguero dribbling into the Porto box to tee up Silva but Maicon slid in to deny the Spaniard.
At the other end Gonzalez prodded an effort narrowly wide from 18 yards.
Porto then pieced together a nice passing move and Maicon drove the ball into the box but the offside flag was raised before James Rodriguez turned it into the net.
Hulk almost broke through as Porto attacked again but Samir Nasri got a foot in at a vital moment.
City again pressed for another with Silva winning a corner from Helton with a powerful drive, before play was held up after Otamendi was accidentally kicked in the face by team-mate Maicon.
City put the result beyond any doubt as substitute Dzeko, who had been on the field just seven minutes, was slipped in by a fine ball from Aguero and finished with confidence.
It quickly became a double blow for Porto as Rolando, who had been booked early in the game, was shown a second yellow card as City celebrated – perhaps for protesting too much for offside – and left the field.
City then went on to wrap up the game in style as Silva added a third after 84 minutes after substitutes Pizarro and Dzeko combined to provide a tap-in.
Another followed two minutes later as Pizarro again linked up with Dzeko and broke into the box to slam past Helton for his first goal for the club.