Kevin De Bruyne and Kelechi Iheanacho were on target as Manchester City beat Manchester United 2-1 in the derby at Old Trafford.
Pep Guardiola looked set to dish out a comprehensive beating to his old adversary Jose Mourinho in the United dugout as Kevin De Bruyne and Kelechi Iheanacho – in for suspended top scorer Sergio Aguero – put City into a two-goal lead.
But Bravo, starting after his move from Barcelona hastened crowd favourite Joe Hart through the Etihad Stadium exit door, erred as Zlatan Ibrahimovic reduced the arrears with his fourth Premier League goal of the season.
Further bizarre decision making from the 33-year-old looked United's easiest route to a draw and he prompted more last-ditch defending in stoppage time before City were able to take the local bragging rights and look down on their neighbours from the top of the table.
Paul Pogba flashed a 25-yard strike over in the seventh minute following neat interplay from Wayne Rooney and full debutant Henrikh Mkhitaryan, but United's forward talents were forced to feed off scraps as City's sharp passing pinned the hosts back.
Guardiola's men were good value for their 15th-minute opener, although it arrived in unexpectedly direct circumstances.
Bravo stroked a pass out to left-back Aleksandar Kolarov, who pumped a long ball towards Iheanacho as United held their ground.
The Nigeria international won the flick on and De Bruyne streamed clear, away from a switched-off Daley Blind to slot past David de Gea.
City continued to mercilessly hog possession and Blind's game went from bad to worse nine minutes before half-time, inadvertently playing Iheanacho onside to convert when De Bruyne's left-footed shot thudded back off the base of the post.
But United were offered a lifeline when Bravo horribly fumbled a free-kick from deep and Ibrahimovic rifled home.
Another haphazard call from Bravo meant John Stones was forced to clear off the line in stoppage time, giving further encouragement to Mourinho at the end of what proved an often chastening half for United.
The United boss sent on Marcus Rashford and Ander Herrera for Mkhitaryan and Jesse Lingard at the break, and his revamped attack began the second half on the front foot, with Ibrahimovic blazing over under pressure from Kolarov.
Guardiola responded by adding steel to his midfield in the form of Fernando as Iheanacho made way.
City's earlier fluency was providing elusive, with Bravo's continually erratic showing doing little for their collective composure.
Chile's number one crafted an old-fashioned derby day 50-50 challenge in his own area following a dreadful touch, crunching into Rooney and playing the ball via equal means of luck and judgement.
Bravo allowed a shot from the menacing Rashford to slip past him, but Ibrahimovic being stationed in an offside position spared him.
There was more pleasing goalkeeping at the other end when De Gea got down sharply to thwart Fernandinho from a De Bruyne corner in the 71st minute.
In De Bruyne, City had one man whose first-half level had not waned and the Belgium star collected a pass from substitute Leroy Sane to spin a shot off the inside of De Gea's near post and agonisingly across the goalline.
The breathing space Guardiola's team appeared to need was never closer to arriving, but they hung on to retain their 100 per cent record at the expense of United's to land a first telling blow in what promises to be a pulsating title race.
Opta key stats:
- Mourinho has won just three of his 17 meetings with Guardiola (D6 L8).
- Guardiola is the fourth manager in Premier League history to win his first four matches in the competition (also Mourinho, Guus Hiddink, and Carlo Ancelotti).
- City secured their 50th Manchester derby win in all competitions.
- Ibrahimovic became the third player to score four goals in his first four Premier League games for United (also Louis Saha and Robin van Persie).
- De Bruyne has been directly involved in 32 goals in 46 apps in all competitions for City (17 goals, 15 assists).