Bravo, the goalkeeper controversially signed by Guardiola from Barca this season, was sent off for handling outside the area after blundering an attempt to play out from the back.
Messi, who had already scored one in a breathless Champions League Group C clash at the Nou Camp, took further advantage with two more and Neymar, after missing a penalty, added a late fourth.
Barca also finished the game with 10 men after Jeremy Mathieu - a 39th-minute substitute for the injured Gerard Pique - was dismissed for two bookings in quick succession.
It proved far from a happy homecoming for the revered Guardiola, who made a huge call before kick-off by leaving star striker Sergio Aguero on the bench.
His reasoning was that he wanted more midfielders, presumably to combat Barcelona’s attacking arsenal, but the tactic failed.
Instead, Kevin De Bruyne was deployed in the ‘false nine’ position Messi sometimes played under Guardiola at Barca.
City were given an early warning as Neymar weaved his way to the byline but his pull-back found no-one. In a lively start, City also broke as Raheem Sterling and David Silva exchanged passes but Marc-Andre ter Stegen dealt with the England man’s cross.
The opening minutes were promising for City but Barca quickly overcame the early loss of Jordi Alba to injury and began to take a firm grip.
A quick break saw Luis Suarez slip in Neymar. John Stones cleared but Barca came back again with Messi combining with Andres Iniesta on a charge into the box. Fernandinho slipped at an unfortunate moment and suddenly the ruthless Messi had all the space he needed he round Bravo and put Barca ahead.
Suarez almost added another moments later after Messi poked the ball in his direction but the former Liverpool forward lashed into the side-netting.
Another chance went by as Ivan Rakitic headed a free-kick over but City could have been back level by the break as Nolito and Ilkay Gundogan forced saves out of Ter Stegen. Stones had an even better chance but planted a free header wide from a free-kick. De Bruyne hit the side-netting after a Sterling cross was deflected, perhaps off Lucas Digne’s hand.
Barca lost a second defender to injury when Pique limped off but they went close again as Suarez’s shot rebounded goalwards off Bravo’s body and the keeper clawed away.
That was a hairy moment for the Chilean, but nothing compared to the horror which unfolded in the 53rd minute.
City had already had another escape after Samuel Umtiti headed wide when Bravo came out of his area and miscued a pass straight to Suarez. Suarez immediately attempted a lob and Bravo’s instinctive jump to handle the shot was only ever going to result in a red card.
The resulting reshuffle saw Nolito sacrificed and Willy Caballero sent on in goal, while Pablo Zabaleta also went off injured during the stoppage.
Caballero made an early save from Suarez but there was no stemming the tide as Messi clipped in his second from the edge of the box just after the hour.
Caballero was soon picking the ball out of the net again after Gundogan miplaced a pass and Suarez surged forward to tee up Messi’s hat-trick.
Ter Stegen made good saves from De Bruyne and Aleskandar Kolarov and Barca also lost a man when Mathieu received a second yellow card for fouling Sterling.
Caballero made his mark by saving Neymar’s spot-kick after Kolarov felled Messi but the Brazilian was not to be denied and struck in the 89th minute.