Arsenal ended Manchester United’s 25-match unbeaten run in the Premier League and kept up their hopes of securing a place in the top four.
After a largely uneventful first half, Granit Xhaka opened the scoring with a deflected shot from distance, which looped over goalkeeper David de Gea.
And they doubled their lead three minutes later when Danny Welbeck headed home against his former club after a pinpoint cross from Alex Oxlade-Chamberlain.
Jose Mourinho introduced Marcus Rashford and Jesse Lingard to try to rescue the game, but they failed to bring the visitors to life.
The result means Arsenal remains in sixth place but is two points off United in fifth and six points off Manchester City in fourth, with a game in hand over both teams.
This victory not only reignites Arsenal’s chase for a Champions League place, but also ends an unwanted record for Arsenal manager Arsene Wenger against Jose Mourinho.
The pair have endured a fractious relationship over the years, and in their previous 15 competitive meetings Wenger had never beaten a Mourinho team, with his only victory coming in the Community Shield in 2015.
Sunday’s win ended the hoodoo and earned Arsenal only their 13th league win in 50 outings against the Red Devils.
Both teams had four shots on target during the match but it was Arsenal who made them count.
After a dull start to the second half, the Emirates came alive when Xhaka ran into space and took a shot from 30 yards out which was helped on its way by Herrera and out-smarted De Gea.
The Gunners kept up the pace and exactly three minutes and 11 seconds later, Welbeck had notched his second Premier League goal of the season.
Oxlade-Chamberlain’s right-wing cross whistled over the box and Welbeck rose up between the United defence to land a bullet header.
Arsenal offered little in attack after the goals, but they did not need to.
Mourinho revealed before the match he intended to rest key players, with one eye on the Europa League semi-final second leg against Celta Vigo, in which his team has a 1-0 advantage. The European competition could represent United’s best chance of reaching next season’s Champions League.
The United manager made eight changes in total and his side never looked like causing a major threat.
Goalkeeper De Gea kept them in the match at half-time, producing a low stop to deny Aaron Ramsey’s effort, before making a brilliant save from a rasping Oxlade-Chamberlain shot from distance.
United were undone by two quick goals early in the second half, and their only notable efforts after that came from Rooney and substitute Scott McTominay, who tried to poke home late on.
Elsewhere on the afternoon, James Milner missed a penalty as Liverpool were held to a 0-0 home draw by Southampton in a blow to their hopes of finishing in the top four and securing a place in next season’s Champions League.
Phillippe Coutinho returned from the leg injury that saw him limp out of Monday’s 1-0 win over Watford, but the Reds struggled to spark offensively against Southampton’s resolute defence.
The hosts were handed a lifeline in the second half when referee Robert Madley pointed to the spot after Southampton defender Jack Stephens handled the ball in the box, but Fraser Forster got down smartly to his right to keep out Milner’s spot-kick.
Liverpool 0-0 Southampton
Arsenal 2-0 Man Utd
Man City 5-0 Palace
Bournemouth 2-2 Stoke
Burnley 2-2 West Brom
Hull 0-2 Sunderland
Leicester 3-0 Watford
Swansea 1-0 Everton
Alves 1-0 Ath. Bilbao
Valencia 4-1 Osasuna
Deportivo 1-2 Espanyol
Gijon 1-0 Las Palmas
Atletico 1-0 Eibar
Barca 4-1 Villareal
Granada 0-4 R’Madrid
Hamburger 0-0 Mainz
Freiburg 2-0 Schalke 04
Bayern 1-0 Darmstadt
Dortmund 2-1 Hoffenheim
Gladbach 1-1 Augsburg
Frankfurt 0-2 Wolfsburg
Ingolstadt 1-1 Leverkusen
Hertha 1-4 Leipzig