City were handed the initiative after two minutes when referee Neil Swarbrick sent off McAuley instead of Craig Dawson in a case of mistaken identity after the latter brought down Bony, who was through on goal.
First-half strikes from Bony and Fernando put City two up at the break, before David Silva’s effort 13 minutes from time secured the points against a spirited Baggies side.
Sergio Aguero was thwarted on numerous occasions by Baggies goalkeeper Boaz Myhill, who took a starring role in keeping the scoreline respectable.
The result saw City ease some of the mounting pressure on manager Manuel Pellegrini – in his 100th game in charge – by closing the gap on league leaders Chelsea to three points, while West Brom remain 13th after the defeat.
Having seen their domestic and European quests for silverware take a blow with successive 1-0 defeats to Burnley and Barcelona, Pellegrini opted to freshen up side with six changes.
Bony was handed his first start in three games, and it was his persistence in the opening exchanges which forced the Albion defence, and then the referee, into an early error.
With just over a minute on the clock, the Ivorian pounced on McAuley’s under-hit backpass and was challenged by last-man Dawson. The Northern Irishman then tackled Bony inside the area before the referee brought the play back and brandished the red card to the wrong man.
The incident was the second case of mistaken identity in under a month, following Wes Brown’s dismissal at Old Trafford on February 28.
Frank Lampard was called up to the starting line-up for the first time in two months he spurned his side’s first real opening as his sliced an effort from 18 yards wide 20 minutes in.
Unsurprisingly, City dominated possession and had the host of chances to break the deadlock but Myhill was on hand to deny Silva.
The pressure finally told on 27 minutes when Bony seized on Dawson’s and Craig Gardner’s indecision to gather the ball before coaxing it into the top left-hand corner of Myhill’s goal.
It was his first goal since New Years’ Day when he netted in Swansea’s 1-1 draw at QPR.
A barrage of City attacks ensued as Navas’ neat turn and shot inside the area drew Myhill into another eye-catching save before it was two shortly before the break.
Summer acquisition Fernando grabbed his second goal for City, having scored his first in a 3-1 victory at the Hawthorns in December.
The Brazilian punished Jonas Olsson’s and Myhill’s hesitancy in the area to prod home from close range on 41 minutes.
City continued their relentless push for a third after the break but Myhill proved impenetrable as Aguero was denied from three yards.
Bony and Aguero hit the woodwork as their efforts struck the post and cross bar in quick succession.
Albion rallied and spurned a glorious opportunity to halve the deficit when Saido Berahino headed Olsson’s flick over onto the bar and then over the target from close range before Silva wrapped up the points.
Substitute Stevan Jovetic did well to fashion a yard and get a shot away but Silva was on hand to get the decisive touch to deflect it into the back of the net.
Man City: Hart (6), Clichy (6), Kompany (6), Mangala (6), Zabaleta (6), Fernando (7), Lampard (6), Navas (6), Silva (8), Aguero (6), Bony (7).
Subs: Dzeko (6), Jovetic (6), Milner (6).
West Brom: Myhill (6), Dawson (5), Lescott (5), McAuley (4), Olsson (5), Fletcher (6), Gardner (6), Morrison (6), Sessegnon (5), Berahino (5).
Subs: Mulumbu (5), Anichebe (5).
Man of the match: David Silva