Sergio Aguero scored a hat trick as Manchester City cut Liverpool's lead at the top of the Premier League to two points by beating Arsenal 3-1 at the Etihad.
Aguero struck in the opening minute, restored City's lead before half-time after Laurent Koscielny headed an equaliser and completed his treble early in the second half.
City were playing at a high tempo and there were appeals for a penalty moments later when Aguero tangled with Shkodran Mustafi, referee Martin Atkinson waving them away.
Laporte thumped in a header from Kevin De Bruyne's free kick only for the offside flag to go up, but Kyle Walker was forced into a last-ditch clearance at the other end as defensive jitters threatened to let Arsenal in.
From the resulting corner, the Londoners were level after 11 minutes as Koscielny escaped his markers to head into the roof of the net.
The goal briefly stunned City, whose early verve deserted them as Arsenal began to see more of the ball -- but with half-time approaching they regained the lead in style.
The goal came when Sterling combined brilliantly with Ilkay Gundogan to deliver a cross that Aguero converted from close range, and it could have been 3-1 moments later when De Bruyne fizzed wide.
Leno did well to claim a loose ball inside his six-yard area with home attackers buzzing around, and Mustafi made a good challenge to halt Aguero in the Arsenal area.
Sterling fed De Bruyne in the area, only for him to fire straight at Leno -- but on the hour it was 3-1 when Aguero wrapped up his hat trick, bundling home a Sterling cross with Arsenal appealing in vain that he had used an arm.
Soon afterwards, Gundogan was adjudged to have dived and was shown a yellow card after going down in the area under challenge from Mustafi.
Aguero had an effort saved before being replaced by Gabriel Jesus for the final 10 minutes, Leno making another stop when he parried a crisp David Silva strike.
City made a further late change, Riyad Mahrez coming on for De Bruyne as they comfortably saw out the remaining minutes.