Arsenal moved up to third above Liverpool in the Premiership table after sinking hard-working Manchester City at the Emirates Stadium.
Arsenal's Vassiriki Diaby is hounded by City's Michael Ball
Tomas Rosicky fired the Gunners into a 12th-minute lead when he slotted home Emmanuel Eboue's right wing cross.
But City hit back when DaMarcus Beasley finished well just before the break.
The visitors looked the better side early in the second half but were undone when Cesc Fabregas and Julio Baptista netted with two fine strikes.
Arsenal went into the game fresh from their victory over Bolton which ended their longest winless run of the season.
City were themselves hitting better form, having moved away from relegation danger thanks to a five-match unbeaten run.
But despite City boss Stuart Pearce setting his stall out by trying to get as many men behind the ball as possible, there was a sense of the inevitable when the Gunners made the early breakthrough.
Vassiriki Diaby dispossessed Darius Vassell with a crunching tackle and fed Eboue, whose whipped cross from the right was clinically despatched by Rosicky.
But despite losing Diaby minutes later to a head injury, Arsenal added even more firepower when Baptista was handed his chance by Arsene Wenger.
The Brazilian striker was soon in the thick of the action when he was fouled just outside the City penalty area by Richard Dunne.
Dunne, who was the visitors' stand-out player of the half, then blocked Baptista's subsequent 25-yard free-kick by heading over.
Fabregas saw a superb 30-yard strike well parried by City keeper Andreas Isaksson as the Gunners continued to pile on the pressure.
But totally against the run of play, City were level.
Jens Lehmann's weak clearance was intercepted by Joey Barton that enabled Michael Johnson to thread the ball in for Beasley to finish.
The goal lifted the visitors and they nearly went ahead in the 44th minute when Barton danced his way passed the Arsenal defence before forcing Lehmann to save well to his right.
City started the second half as they finished the first, with Arsenal looked rattled by some uncompromising tackling.
Rosicky and Fabregas, in particular, felt the force of two solid blocks as they looked ready to shoot.
Wenger's side nearly retook the lead when first Emmanuel Adebayor's effort was well saved by Isaksson and then Alexander Hleb flashed a left-footed strike just wide.
Adebayor was then denied twice inside three minutes - the first by a brilliant block from Sylvain Distin before Isaksson got down to keep out his powerful header.
But Arsenal's renewed pressure finally paid off in the 73rd minute when City's defending for once let them down.
They failed to clear their lines and Fabregas collected a loose ball just out the box before lashing home an unstoppable volley.
Beasley had the ball in the back of the net at the other end three minutes later but was ruled offside after lobbing Lehmann.
And City's brave resistance was finally ended when Hleb jinked his way into the penalty area and his cross was converted by Baptista.
Arsenal manager Arsene Wenger:
"We didn't expect City to get back to 1-1 after we took the lead but we had to wait for the win.
"I think we deserved the victory as we created a lot of chances and when we got our second it made it easier because they had to change their shape.
"But now we must try to build on this and win as many points as we can."
Manchester City manager Stuart Pearce:
"I thought the endeavour of the players was fantastic tonight and I was disappointed for them when they didn't get the result.
"It was touch a touch of brilliance, a really fantastic strike that got them get back in front after we equalised.
"Now I hope we can try to get 50 points before the end of the season."
Arsenal: Lehmann, Eboue, Toure, Gallas, Clichy, Hleb, Fabregas (Denilson 85), Silva, Rosicky (Senderos 90), Diaby (Julio Baptista 30), Adebayor.
Subs Not Used: Almunia, Djourou.
Goals: Rosicky 12, Fabregas 73, Julio Baptista 80.
Man City: Isaksson, Onuoha, Dunne, Distin (Corradi 78), Ball, Jihai (Samaras 78), Hamann, Barton, Johnson, Beasley, Vassell (Ireland 90).
Subs Not Used: Weaver, Trabelsi.
Goals: Beasley 41.
Ref: M Halsey (Lancashire).