Johnson's side were on the verge of an improbable half-time lead, though if not for a remarkable clearance by Aden Flint on the cusp of the interval, Manchester City would have levelled before the break.
Jose Mourinho is reportedly willing to offer whatever he needs to get Sanchez and the former Barca man wants to leave ASAP, although we'll see if that happens.
Mourinho is searching for a long-term replacement for Michael Carrick, whose contract is set to expire at the end of the season.
Bristol City attacked with pace and confidence.
The Manchester City manager also won the award in September, October and November as his side remain unbeaten this season.
"My players were fantastic because in football you can win, you can lose, but we try until the end".
The 32-year-old has played a key role for City this season, but it has been suggested that Guardiola is wary over the amount of games that the central midfielder has competed in since August. "I think two or three weeks and he could be ready to play against Basel in the Champions League", Guardiola told press on Friday. More surprisingly still, the visitors threatened to find breakthrough.
After qualifying for the League Cup semifinals in midweek, defending champion Monaco travels to Montpellier, its next opponent in the cup. "We win many games in the last minutes because we don't give up", City manager Pep Guardiola told Sky Sports.
With the Spaniard's current deal expiring in 2019, United aim to extend his stay for another five years. Bravo's arced through ball while under pressure in his own six-yard found De Bruyne in midfield and the Belgian began haring up the pitch.
Cavani, the league top scorer with 19, was not included in Unai Emery's squad for matches against Rennes and Amiens in domestic cups and it's still unclear whether the Uruguay forward will be used on Sunday at fifth-place Nantes.
From there on, the sense was that Bristol City's moment had been and gone.
Guardiola and his team lost 1-0 at their last trip to Anfield Stadium, thanks to a goal from Liverpool midfielder Georginio Wijnaldum.
The Argentine's introduction eventually had the desired effect as stoppage time approached.
Manchester City (4-3-3): Bravo; Danilo, Stones, Mangala, Zinchenko; De Bruyne, Touré, Gundogan; Bernardo, Sterling, Sane.