Sergio Aguero was again the headline act as Manchester City sealed an impressive win over holders Porto to reach the last 16 of the Europa League.
The Argentine scored City's first-leg winner and here he gave them the lead after just 19 seconds with a low shot.
He then turned creator for Edin Dzeko to score a goal which Porto's Rolando was sent off for protesting against.
With the tie won, City romped home thanks to well-worked goals from David Silva and substitute David Pizarro.
The victory may not compensate City financially for failing to advance beyond the group stages of the Champions League, but it does go a small way towards making amends for that unplanned early elimination.
In the build-up to this encounter, City's players and staff were eager to express how important this season's Europa League is to the club - on a level with the Premier League according to manager Roberto Mancini - following their early de-seating from Europe's top table.
But then, redemption is all the rage at Etihad at the moment, following Carlos Tevez's unreserved apology "to everyone I have let down" during his five-month feud with the club.
Tevez's future at City remains uncertain, but even if his apology does prove heart-felt, he will have to accept that the position of world-class diminutive Argentine striker is currently filled.
CITY'S EUROPEAN HOME COMFORT
- Manchester City are now unbeaten in 16 matches at home in Europe, a run that goes back to 14 August 2008, when they were beaten 1-0 by FC Midtjylland in the Uefa Cup.
Sergio Aguero has been one of the stars of City's season and over the course of this two-legged tie he has again illustrated the task Tevez - motivated or not - has in front of him to reclaim his place in Mancini's starting XI.
After stinging Porto with his goalscoring exploits from the bench last week, the 23-year-old was a constant thorn in the Portuguese outfit's side here. He harried defenders into errors, ghosted effectively into space untracked and just about his every touch was a positive one, including, most significantly, his very first.
Porto defender Nicolas Otamendi was partly culpable for his side conceding, giving the ball away to allow Yaya Toure to slide in a pass for Aguero to run on to and slot past Porto keeper Helton with just 19 seconds on the clock.
The striker should have scored more, but he was cruelly denied a sublime second when his chip from 25 yards struck the crossbar and then gave a rare glimpse of his fallibility when firing wide late in the first half.
City's grip on the game was firm, but while it remained 3-1 on aggregate, Porto still held belief that a goal could spark a comeback in the tie.
However, despite the physical presence of Hulk in attack, they lacked a cutting edge to complement their neat build-up play and City were able to repel whatever was thrown their way, including a series of fiercely struck but largely wayward free-kicks from the aforementioned bulky centre-forward.
With 15 minutes to go, City sealed the tie and it was no surprise that Aguero played a key role, sliding in a neat pass that substitute Dzeko latched on to and slotted in.
Seemingly more in frustration than any genuine belief there had been an infringement, Porto's Rolando sprinted to the referee's assistant to protest, earning himself a second yellow card and an early departure from the field.
Now with a numerical advantage and facing utterly deflated opponents, City ran riot.
Pizarro, another late substitute, exchanged passes with Dzeko before crossing for Silva to finish from close range and the Chilean then grabbed a goal himself - his first for the club since joining on loan in January - with a well-struck low shot.
Manchester City manager Roberto Mancini: "It was a good night but it was not easy. We had other chances to score but we didn't score, and when you don't score, you can have other problems.
"It is not easy to beat Porto, they are one of the top teams in Europe and I am happy that we are going to the next stage.
"We want to try to go to the final if possible but it will be difficult because the Europa League has top squads - Manchester United, Valencia, Schalke - it is like the Champions League.
"For this reason it will be difficult but we want to try.
Porto coach Vitor Pereira: "Up until the second Manchester City goal, Porto were the best team. We played much better but we know Manchester City have a good team and they used the counter-attack well.
"They have great players up front and the second goal caused us difficulties. We wanted to change the game but the sending off changed it in favour of Manchester City.
"Someone who has not seen the match is wrong in their opinion if they think City have dominated the game. The scoreline does not show what happened on the pitch."
- 25 Hart
- 02 Richards
- 04 Kompany
- 06 Lescott
- 22 Clichy
- 18 Barry (Milner - 58' )
- 19 Nasri (Dzeko - 69' )
- 21 Silva
- 34 De Jong
- 42 Y Toure Booked
- 16 Aguero (Pizarro - 80' )
- 30 Pantilimon
- 05 Zabaleta
- 15 Savic
- 07 Milner
- 08 Pizarro
- 10 Dzeko
- 45 Balotelli
- 01 Helton
- 04 Maicon
- 14 Rolando Dismissed after an earlier booking
- 26 Alex Sandro
- 30 Otamendi Booked (Rodriguez - 63' )
- 03 Gonzalez Booked
- 08 Joao Moutinho
- 19 Rodriguez (Defour - 81' )
- 25 Fernando
- 12 Hulk
- 17 Varela (Sapunaru - 63' )
- 31 Bracali
- 21 Sapunaru
- 10 Rodriguez
- 35 Defour
- 42 Podstawski
- 11 Kleber
- 20 Djalma
Live Text Commentary
Full Time The referee blows his whistle to end the game.90:00 +2:52
Short corner taken by Givaldinho Hulk from the right by-line.90:00 +2:40
Givaldinho Hulk takes a shot. Joleon Lescott gets a block in.90:00 +2:12
Givaldinho Hulk decides to take a short corner.90:00 +1:57
Steven Defour has a drilled shot. Save by Joe Hart.89:37
Shot by Lucho Gonzalez from deep inside the penalty area misses to the left of the target.89:29
Short corner taken by Givaldinho Hulk from the left by-line.89:14
Givaldinho Hulk takes a shot from 12 yards. Save made by Joe Hart.87:10
Free kick awarded for an unfair challenge on Gnegneri Toure Yaya by Cristian Rodriguez. Gael Clichy takes the direct free kick.85:07 Goal scored
Goal! - David Pizarro - Man City 4 - 0 FC Porto David Pizarro fires in a goal from inside the box to the bottom left corner of the goal. Man City 4 (6)-(1) 0 FC Porto.83:03
Assist on the goal came from David Pizarro.83:03 Goal scored
Goal! - David Silva - Man City 3 - 0 FC Porto David Silva fires in a goal from close in low into the middle of the goal. Man City 3 (5)-(1) 0 FC Porto.82:21
David Silva fouled by Cristian Sapunaru, the ref awards a free kick. Free kick taken by James Milner.81:03
Unfair challenge on Vincent Kompany by Givaldinho Hulk results in a free kick. Free kick taken by Joe Hart.79:22
Da Silva Helton takes the free kick.79:22 Substitution
Substitution Steven Defour replaces James Rodriguez.79:22 Substitution
Substitution David Pizarro on for Sergio Aguero.79:22
The offside flag is raised against Edin Dzeko.76:10 Dismissal
Dismissal The referee shows Jorge Rolando a red card.75:50
Assist on the goal came from Sergio Aguero.
Goal! - Edin Dzeko - Man City 2 - 0 FC Porto Edin Dzeko grabs a goal from inside the box low into the middle of the goal. Man City 2 (4)-(1) 0 FC Porto.74:48
Micah Richards concedes a free kick for a foul on Cristian Rodriguez. Lobo Alex Sandro takes the direct free kick.74:11
Givaldinho Hulk produces a left-footed shot from long distance which goes wide right of the goal.71:19
Free kick awarded for an unfair challenge on Cristian Sapunaru by Edin Dzeko. Felipe Joao Moutinho takes the direct free kick.70:38
Lobo Alex Sandro concedes a free kick for a foul on Sergio Aguero. Joe Hart restarts play with the free kick.70:06
James Rodriguez takes the outswinging corner, Edin Dzeko manages to make a clearance.69:54
James Rodriguez decides to take the corner short.69:01
Unfair challenge on Givaldinho Hulk by Gnegneri Toure Yaya results in a free kick. Francisco Fernando takes the direct free kick.68:34 Substitution
Substitution Edin Dzeko on for Samir Nasri.66:16
Strike comes in from Givaldinho Hulk from the free kick.66:16 Booking
Booking Gnegneri Toure Yaya receives a yellow card for unsporting behaviour.66:11
Felipe Joao Moutinho fouled by Gnegneri Toure Yaya, the ref awards a free kick.65:04
Givaldinho Hulk decides to take the corner short.63:32
Inswinging corner taken by Samir Nasri from the left by-line.62:22 Substitution
Substitution (FC Porto) makes a substitution, with Cristian Rodriguez coming on for Nicolas Otamendi.62:22 Substitution
Substitution Cristian Sapunaru on for Silvestre Varela.60:17
David Silva produces a drilled left-footed shot from 12 yards. Save by Da Silva Helton.60:04
Samir Nasri delivers the ball.59:32
Samir Nasri takes the inswinging corner, clearance made by Jorge Rolando.56:37
Joe Hart restarts play with the free kick.56:37 Substitution
Substitution James Milner joins the action as a substitute, replacing Gareth Barry.56:37
The assistant referee signals for offside against Givaldinho Hulk.53:48
Sergio Aguero produces a cross, clearance made by Nicolas Otamendi.53:03
The ball is swung over by Givaldinho Hulk, save by Joe Hart.51:19
Shot from just outside the box by Lucho Gonzalez misses to the left of the target.51:04
Free kick awarded for a foul by Gnegneri Toure Yaya on Givaldinho Hulk. Direct free kick taken by Felipe Joao Moutinho.50:09
The ball is delivered by James Rodriguez, clearance made by Vincent Kompany.48:30
The offside flag is raised against Gnegneri Toure Yaya.46:01
Inswinging corner taken from the left by-line by Samir Nasri.45:01
The referee starts the second half.45:00 +1:22 Half time
Half Time The ref blows to end the first period.45:00 +1:05
Unfair challenge on David Silva by Lucho Gonzalez results in a free kick.44:58
Foul by Gnegneri Toure Yaya on Roque Maicon, free kick awarded. James Rodriguez restarts play with the free kick.43:15
Outswinging corner taken by Felipe Joao Moutinho. Shot from deep inside the area by Nicolas Otamendi clears the bar.42:10
Gareth Barry challenges Givaldinho Hulk unfairly and gives away a free kick. Direct effort from the free kick comes in from Givaldinho Hulk, blocked by Joleon Lescott.41:14
Free kick awarded for an unfair challenge on Lucho Gonzalez by Nigel De Jong. Francisco Fernando restarts play with the free kick.40:32
Sergio Aguero produces a right-footed shot from the edge of the box and misses to the right of the target.39:29
Unfair challenge on Givaldinho Hulk by David Silva results in a free kick. Givaldinho Hulk fires a strike on goal direct from the free kick.38:20
Inswinging corner taken left-footed by David Silva from the right by-line, Francisco Fernando manages to make a clearance.38:05
David Silva takes a shot. Blocked by Lucho Gonzalez.36:45
Lucho Gonzalez takes a shot from just outside the penalty area which clears the crossbar.36:02
James Rodriguez takes a shot. Vincent Kompany gets a block in.35:14
Lobo Alex Sandro fouled by Gnegneri Toure Yaya, the ref awards a free kick. Free kick taken by Felipe Joao Moutinho.34:17
The ball is swung over by Givaldinho Hulk.31:06
David Silva concedes a free kick for a foul on Francisco Fernando. Free kick taken by Jorge Rolando.29:40
Felipe Joao Moutinho challenges Sergio Aguero unfairly and gives away a free kick. Joleon Lescott takes the direct free kick.29:21
Givaldinho Hulk delivers the ball, Joleon Lescott makes a clearance.28:19
Shot from 18 yards by Sergio Aguero.27:21
Felipe Joao Moutinho challenges Nigel De Jong unfairly and gives away a free kick. Nigel De Jong takes the free kick.25:58
Shot comes in from Felipe Joao Moutinho from the free kick.25:58 Booking
Booking Nicolas Otamendi is shown a yellow card.25:35
Micah Richards concedes a free kick for a foul on James Rodriguez.25:03
Francisco Fernando fouled by Gnegneri Toure Yaya, the ref awards a free kick. Francisco Fernando takes the direct free kick.23:16
Givaldinho Hulk takes the inswinging corner, Gareth Barry makes a clearance.21:41
Vincent Kompany gives away a free kick for an unfair challenge on James Rodriguez. Felipe Joao Moutinho takes the free kick.21:01
Shot from just outside the box by Lobo Alex Sandro misses to the left of the goal.18:46
The offside flag is raised against David Silva. Da Silva Helton restarts play with the free kick.16:04
Silvestre Varela has an effort at goal. Save by Joe Hart.15:26
Gnegneri Toure Yaya takes a shot. Save by Da Silva Helton.14:14
Free kick awarded for a foul by Gnegneri Toure Yaya on Lobo Alex Sandro. Free kick taken by Felipe Joao Moutinho.13:47
Nigel De Jong restarts play with the free kick.13:47 Booking
Booking The referee books Lucho Gonzalez for dissent.13:07 Booking
Booking The referee cautions Jorge Rolando for unsporting behaviour.12:55
Jorge Rolando concedes a free kick for a foul on Sergio Aguero.11:48
The assistant referee signals for offside against Sergio Aguero. Jorge Rolando takes the free kick.11:13
Free kick awarded for a foul by Lobo Alex Sandro on Gnegneri Toure Yaya. Free kick taken by Gnegneri Toure Yaya.10:20
Givaldinho Hulk is caught offside. Indirect free kick taken by Joe Hart.8:58
Foul by Lucho Gonzalez on Nigel De Jong, free kick awarded. Direct free kick taken by Nigel De Jong.7:23
Roque Maicon sends in a cross.5:32
Sergio Aguero challenges Nicolas Otamendi unfairly and gives away a free kick. Free kick taken by Nicolas Otamendi.3:36
Silvestre Varela takes a shot. Comfortable save by Joe Hart.2:34
Felipe Joao Moutinho has an effort at goal from outside the box which misses left.2:13
Lucho Gonzalez takes a shot from 25 yards. Blocked by Micah Richards.1:39
Nigel De Jong challenges Felipe Joao Moutinho unfairly and gives away a free kick. Direct free kick taken by James Rodriguez.0:18
Assist on the goal came from Gnegneri Toure Yaya.0:18 Goal scored
Goal! - Sergio Aguero - Man City 1 - 0 FC Porto Sergio Aguero scores a goal from inside the penalty area to the bottom left corner of the goal. Man City 1 (3)-(1) 0 FC Porto.0:00
The match gets underway.
Live data and text provided by our data suppliers