Manchester City felt they should have been awarded a penalty for a foul on Sergio Aguero in a goalless first half, but Yaya Toure put them in front at the start of the second period.
The visitors were reduced to 10 men when Eliaquim Mangala was sent off for a second bookable offence with 15 minutes remaining, but substitute Frank Lampard eased City’s nerves with a clinical strike before Gael Clichy added a third late on.
Victory for City moved them above Southampton with 27 points from 13 games, while Southampton are a point behind.
Tottenham Hotspur host Everton at White Hart Lane later on Sunday.