City trailed when Raffael powered a rising 15-yard drive past Claudio Bravo from a central position.
But Silva slid in at the near post to convert Kevin de Bruyne’s low cross before the break.
City improved after half-time, helped by the dismissal of home skipper Lars Stindl for two yellow cards.
However, the visitors were also reduced to 10 men when Fernandinho was booked for a second time for a needless tug on Raffael’s shirt inside the Monchengladbach half.
Despite more space for both sides to exploit, the game failed to open up in the final half-hour.
But the point, coupled with Celtic’s home defeat by leaders Barcelona, clinches second place in Group C for Pep Guardiola’s men.
The Blues cannot catch the Spanish champions, who are four points clear with one round of matches to play.