Scorers: Barcelona - Messi (67), Alves (90); Manchester City - Kompany (89)
Barcelona won 4-1 on aggregate
The pair, who both struck in the 2-0 first-leg win, were on target in the second half at the Nou Camp as Barca completed a 4-1 aggregate win.
City were briefly level at 1-1 after a late Vincent Kompany effort but it proved mere consolation for the visitors, who had Pablo Zabaleta sent off for two bookable offences.
History repeated itself in many ways. It was not only in the identity of the Barcelona goalscorers and City’s reduction to ten men that the game mirrored the first encounter.
Just as in Manchester, there were a number of controversial decisions by the referee.
Frenchman Stephane Lannoy denied Barcelona a penalty and disallowed a goal for the hosts in the first half, while Edin Dzeko had strong spot-kick claims in the second period.
This time City manager Manuel Pellegrini would have to keep his frustration to himself having been handed a touchline ban for comments about the first-leg official.
City deviated from their regular 4-4-2 formation and bulked up the midfield by bringing in James Milner.
But with David Silva operating behind lone striker Sergio Aguero, they acknowledged the need to attack.
An early goal would have brought them back into the tie and they started confidently.
Milner broke free down the left and pulled the ball across the box for Silva but the Spaniard declined to shoot and a chance was lost.
City made a better job of breaking up Barcelona’s possession than they had in the last meeting but it was still a tough task and they conceded a number of fouls.
And Fernandinho, Aleksandar Kolarov and – critically – Zabaleta were all booked for bad challenges in the first period and all will now miss City’s next match in European competition.
Joleon Lescott, a replacement for the suspended Martin Demichelis was perhaps lucky to escape a caution as well after bundling over Messi.
The England defender enjoyed even more fortune when he brought Messi down again inside the area after eight minutes.
Referee Lannoy let him off and there was a further reprieve for City when Neymar put the ball into the net only for Jordi Alba to be harshly ruled offside.
City had another scare when Messi weaved his way into the area and beat Joe Hart but he moved wide and Kompany cleared.
City applied some pressure but Silva missed the target from the edge of the box.
They escaped again when Neymar deftly headed past Kolarov to open up a chance but his low shot hit the side-netting. Hart then parried a quickfire Xavi shot.
City created a clear-cut chance just before the interval when Silva cleverly flicked back Yaya Toure’s ball but Samir Nasri shot straight at Victor Valdes.
The half ended with Fernandinho heading off the line from Neymar after the Brazilian had been put through following more Messi trickery.
City’s coaching staff – making the decisions with Pellegrini confined to a watching brief – sent on Dzeko for the ineffective Aguero at half-time.
The Bosnian immediately added teeth to the attack and tested Valdes with a powerful strike.
But City were still vulnerable at the back and they again rode their luck when Messi seized possession and slid a fine shot past Hart but against the post.
City chanced their arm more and a well-placed looping header from Dzeko was superbly clawed out of the top corner by Valdes.
Zabaleta also found himself in space as Kolarov crossed but dragged his shot well wide.
Barca sensed the threat and simply upped their game. After firing wide, Messi then made no mistake after 67 minutes as he pounced on Lescott’s failed attempt to clear a Cesc Fabregas pass and dinked the ball over Hart.
City tried to fight on but their task became even tougher when Zabaleta was dismissed.
Dzeko charged into the area and seemed to have strong claims for a penalty as he went down under a Gerard Pique challenge.
City’s players were furious nothing was given but Zabaleta took his protests too far and was given his marching orders with a second yellow card.
Kompany pulled one back after Dzeko won a header at a corner but it was too little too late and Alves again caught City on the break in the dying moments.