City were facing their third consecutive defeat in the United States when quick-fire goals from Meritan Shabani and Arjen Robben put Bayern 2-0 ahead inside 24 minutes Saturday.
However, Silva came off the bench in place of injured team-mate and club-record signing Riyad Mahrez to lead City's comeback in Miami.
Silva struck on the stroke of half-time following a mazing run on the edge of the penalty area and City youngster Lukas Nmecha equalised in the 51st minute before the Portugal international sealed the win 19 minutes later at Hard Rock Stadium.
It was more of the same for City in their third and final ICC fixture with Mahrez and Claudio Bravo in the line-up, though highly rated centre-back Aymeric Laporte made his first appearance of the pre-season.
Bayern made a shaky start, the Niko Kovac's German giants struggling to string passes together as City dominated the early exchanges.
The only thing missing was a goal for the undermanned yet impressive City, who were denied by the woodwork in the 13th minute when Nmecha's shot across goal struck the post.
And Bayern somehow took the lead against the run of play two minutes later after Rafinha's cross was emphatically headed past Bravo by 19-year-old Shabani.
City were stunned in the 24th minute as Robben doubled Bayern's lead – the veteran Dutch winger springing the offside trap and chipping the ball over Bravo.
Pep Guardiola was then forced into an early substitution as Silva replaced Mahrez – who picked up a knock – approaching the half-hour mark.
City had Bravo to thank moments later when the veteran Chilean goalkeeper got down low to prevent Robben from netting a brace and that spurred the Premier League champions, who reduced the deficit on the stroke of half-time via Silva.
Nmecha restored parity within six minutes of the second half restarting after pouncing on the rebound, having seen Sven Ulreich – who has been unconvincing throughout the pre-season tournament – push Phil Foden's shot straight into the path of the 19-year-old.
City completed their comeback with 20 minutes remaining when Silva beat Ulreich at his near post following some neat passes in and around the penalty area.