The right-back was City's match winner as he found the net with a rare goal - his first in more than two-and-a-half years.
City laboured to this victory despite having an extra man for 76 minutes after George McCartney's early sending off.
But City struggled to take advantage of their extra man with an unimpressive display which followed on from their defeat in Denmark three days earlier when they needed a penalty shoot-out to overcome Aalborg in the UEFA Cup.
City were without Wayne Bridge, Stephen Ireland and Felipe Caicedo, who were all injured in the midweek match.
And the absence of the injured trio clearly disrupted City, who looked far from a team with hopes of challenging for a European place.
The match exploded to life in the 14th minute when Sunderland had left-back McCartney sent off for pulling back Shaun Wright-Phillips as he burst through on goal.
Referee Steve Tanner failed to spot the offence but was alerted by an eagle-eyed assistant.
Tanner was the centre of further controversy minutes later when he awarded City a penalty after he judged Richards had been fouled by Steed Malbranque as he burst into the area following a rampaging run from defence.
City failed to capitalise as Robinho's weakly struck spot-kick was easily saved by Sunderland's Hungarian keeper Marton Fulop.
Mark Hughes' side went on to create numerous clear-cut chances but were let down by wayward finishing in the goalless opening period.
It was a similar frustrating story early in the second half until Richards finally broke the deadlock in the 57th minute.
He leapt salmon-like at the far post to head Elano's free-kick with the ball clearly over the line before Robinho applied a final touch.
Elano wasted a glorious chance two minutes later to seal victory as he amazingly shot wide from seven yards after another brilliant forward run from Richards.
Sunderland made a brave fist of the game and there were spells in the second half when City had to defend doggedly to preserve their advantage.
But in the closing stages, Sunderland were forced to take risks in their pursuit of an equalising goal and left themselves open at the back.
City were denied a second and clinching goal on three separate occasions by the brilliance of Fulop, who made super saves to deny Elano, substitute Gelson Fernandes and Robinho.