Mancini's substitutions proved to be golden as Balotelli and Milner came off the bench to give City a tough win following a solid defensive display from the Toffees
The first half was a battle of attrition, as Everton defended in numbers, frustrating City's attemps to get attacks started.
Jack Rodwell became the first player to go into Howard Webb's notebook after going through the back of Silva and this was the first of a flurry of early bookings, Leon Osman, Phil Neville and Yaya Toure all were shown yellow cards in a short space of time.
The second half saw City issue an early statement of intent, Sergio Aguero looking especially lively, having a couple of early efforts at Tim Howard's goal.
City was still unable to worry Everton despite a lot of possession and Mancini made a change on the hour as Mario Balotelli replaced Edin Dzeko who had not had an impressive game after being awarded the Player of the Month for August pre-match.
The substitution proved to be inspired as Sergio Aguero cut infield and played the ball into Balotelli who hit a shot from 20 yards that deflected off Phil Jagielka and beat Howard to give City the lead with 68 minutes gone.
Everton, who had already brought on Louis Saha for the injured Tim Cahill, introduced Royston Drenthe and Apostolos Vellios in an attempt to rescue the game, City made defensive minded changes as James Milner and Stefan Savic replaced Aguero and Samir Nasri.
City finally killed off the match in the 89th minute as Silva turned away from his marker and played an inch perfect through ball to Milner who turned in his first Premier League goal since his big-money move to Eastlands last season to wrap up the three points for the home side.