Arsenal moved up to third in the Barclays Premier League with a hard-fought 2-1 win at Crystal Palace.
The Gunners went ahead through an early penalty from Santi Cazorla following a trip by Pape Souare on Danny Welbeck, which the Palace bench protested had been just outside the area.
Referee Mark Clattenburg and his assistant were central to another big call on the stroke of half-time when Welbeck was waved onside and Olivier Giroud netted a second from the rebound after the England forward's shot had been blocked.
Palace showed plenty of endeavor to try to get back into the match, and grabbed a stoppage-time consolation through substitute Glenn Murray, who then hit the post with a flying header as Arsenal held on to close out victory to climb back above Southampton, who play Liverpool on Sunday, and Manchester United, beaten at Swansea.
The tone for what was a hard-fought contest was set early when Fraizer Campbell was caught on the chest by a high boot from Francis Coquelin, Arsenal's new midfield enforcer.
However, Clattenburg gave only a free-kick and no card – much to the disbelief of the Palace bench.
The home management team could then not believe it moments later when Arsenal were awarded a penalty.
Souare, making his Premier League debut after signing from Lille, came across to try to block Welbeck, but tripped the Arsenal forward as he darted away down the right.
The initial contact looked right on the edge of the penalty area, and Clattenburg immediately pointed to the spot.
Cazorla made no mistake from the spot as he sent Julian Speroni the wrong way for his seventh goal of the season.
Palace looked to make an instant response, pushing Arsenal back with some direct balls into the danger area.
Coquelin eventually went into the notebook for a late trip on Campbell as the match continued to be played with plenty of positive aggression.
Arsenal doubled their lead on the stroke of half-time.
Alexis Sanchez played a perfectly-weighted pass into the left side of the penalty area for Welbeck, who was adjudged onside as he ran across the Palace backline.
The England forward sent in a low, angled drive, which Speroni palmed out and Giroud was alert to get to the loose ball ahead of three defenders to stab home his 50th Arsenal goal.
Palace looked to make a positive start to the second half, and pushed Arsenal back as Wilfried Zaha caused problems down the right channel, forcing a string of corners before a looping header from Mesut Ozil dropped onto the top of the crossbar.
The German, who has returned from a knee injury a much stronger player, broke away on 57 minutes and fed Sanchez on the overlap down the left.
Arsenal's leading scorer burst into the box and then stabbed the ball just wide of the far post, when both Welbeck and Giroud were screaming for a pass.
Palace were forced into a change when Campbell limped off with what looked like a hamstring problem and was replaced by Yannick Bolasie.
There was a stoppage when David Ospina went down a few minutes after the goalkeeper had come racing out of his penalty area to jump over Per Mertesacker and head a long ball clear.
After some treatment for what appeared to be a back problem, play continued.
Palace continued to push Arsenal back, as Dwight Gayle sent a bullet header just over before Jason Puncheon's 20-yard free-kick curled just wide.
With 15 minutes left, Gunners boss Arsene Wenger, whose side host Monaco in the Champions League next week, looked to shore up the side as defender Kieran Gibbs came on for Welbeck and Ozil was replaced by Tomas Rosicky.
Palace boss Alan Pardew sent on Murray for Gayle and Shola Ameobi made his debut to replace Joe Ledley.
Murray saw a late close-range header saved on the line by Ospina, who was then beaten in another goalmouth scramble during five minutes of added time.
Palace almost snatched a dramatic equalizer at the death as Ospina flapped at a left-wing cross, which Murray crashed against the base of the post with a flying header.
Watch the match highlights of Crystal Palace 1-2 Arsenal:
Mobile app users, watch the video highlights here.
25+ Channels With Sports & News
- Starting price: $33/mo. for fubo Latino Package
- Watch Premier League, Liga MX, MLS & World Cup
- Includes ESPN, FOX, Univision, TUDN and more
Favorite Leagues At The Best Price
- Starting price: $7.99/mo. for Live TV Package
- Watch Argentine league, Brasileirāo and Copa Libertadores
- Includes beIN SPORTS, GolTV, TyC Sports and more
Many Sports & ESPN Originals
- Price: $6.99/mo. (or get ESPN+, Hulu & Disney+ for $13.99/mo.)
- Features LaLiga, Bundesliga, MLS, Copa del Rey & more
- Also includes daily ESPN FC news & highlights show
Live TV, Soccer & Originals
- Starting price: $4.99/mo.
- Features Champions League, Serie A, Europa League & more
- Includes CBS, Star Trek & CBS Sports HQ
175 Premier League Games & PL TV
- Starting price: $4.99/mo. for Peacock Premium
- Watch 175 exclusive EPL games per season
- Includes Premier League TV channel plus movies, TV shows & more
Get All 3 And Save 30%
- $13.99/mo. for ESPN+, Disney+ & Hulu
- Includes Bundesliga, LaLiga, NHL & the home to UFC
- Features Marvel, Star Wars + shows & movies for your entire family