Manchester City came from behind to beat defending Europa League champions Porto 2-1 in the first leg of their last-32 clash.
Silvestre Varela put the home side ahead on 27 minutes but an Alvaro Pereira own-goal and a tap-in from late substitute Sergio Aguero completed a second-half comeback from Roberto Mancini’s side.
It was a fine response from the away side, who overcame hostile supporters and a fussy referee to stun last year’s winners, who are near impossible to beat at home.
Porto have a fearsome record in Oporto - unbeaten in the league at Estadio Drago for three-and-a-half years although more susceptible against the top continental sides - and they initially showed why by attacking the Premier League leaders from the off, Rolando’s goal-bound header deflected over by Gael Clichy early on.
But before Porto took the lead, the counter-attacking visitors had some good chances themselves as Helton was called into action when the returning Mario Balotelli flicked a free-kick his way, the Brazilian keeper also doing well to keep Samir Nasri’s low shot out when David Silva split the home defence in two.
The opener came on 27 minutes as City were caught napping by a quick free-kick, Hulk drifting wide and hammering in a low, curling cross that left Joleon Lescott and Vincent Kompany for dead, Varela drilling an unstoppable finish into the bottom left.
It was a fine cross and finish but sloppy defending from City, Gareth Barry guilty of turning his back on the initial free-kick, Clichy failing to track Varela’s run inside from the right and Kompany negligent with the Portugal winger.
While Porto had more possession and a greater attacking impetus, City were still dangerous on the break as Balotelli - back from a domestic ban - snatched at a shot when put through by Nasri’s fine pass: he had time and space to take it on, but swivelled in a half-volley that still needed a good stop from Helton.
Balotelli was cutting an isolated figure up front but he was making a nuisance of himself anyway, flicking a header wide of Helton, his defence but also the far post as Clichy showed the better side of his game getting forward.
But on the balance of play the hosts deserved the half-time lead, which they almost added to when Lucho Gonzalez’s goal-bound effort was blocked by Lescott.
So it was unsurprising that City would start the second half with a different strategy, leading from the front and going mighty close when Micah Richards rattled one off the post following one of his trademark rampaging runs from right-back.
Porto were struggling to get past halfway so, when the equaliser came just before the hour mark, it was deserved. It was, however, somewhat fortuitous as Alvaro - harassed by a Balotelli still smarting from an arm in the face by the Uruguayan - tried to intercept a long ball but merely knocked it past his own keeper, who had come to claim it himself.
Having toiled until that point in the second half, Porto responded well with a spell of intense pressure: all they had to show for it was a Hulk free-kick that Joe Hart batted behind for a corner.
The more urgent they became, the happier City were to sit deep and counter.
Indeed, following that Hart save there was little of note for either keeper to do as the match degenerated into a scrappy exchange of fouls and whines, with Porto in particular over-reacting to any challenge as they tried to force the referee to send off City players.
Little, that is, until City won it when - with five minutes remaining - the Porto defence lost track of Nasri, who sent the otherwise quiet Yaya Toure down the left: he could have opted for a near-post finish but, with Helton dragged inside and Aguero unmarked from six yards, the Ivorian played a square ball to the Argentine who rolled the easiest finish of his season into an empty net.
An aggregate lead and two away goals were more than enough for Mancini, who - having already withdrawn Silva - further shut up shop by bringing on Pablo Zabaleta.
There was no chance of a comeback, Porto’s attempts more speculative than penetrating, as City held on to a solid win that sees them clear favourites for the return leg in Manchester next week.
FC Porto: Helton, Danilo, Rolando, Maicon, Pereira, Gonzalez, Fernando, Joao Moutinho, Varela, Hulk, James Rodriguez. Subs: Bracali, Cristian Rodriguez, Kleber, Djalma, Mangala, Alex Sandro, Defour.
Man City: Hart, Richards, Kompany, Lescott, Clichy, Barry, De Jong, Nasri, Toure Yaya, Silva, Balotelli. Subs: Pantilimon, Zabaleta, Pizarro, Dzeko, Kolarov, Savic, Aguero.