Ruud van Nistelrooy and Wayne Rooney each scored to give Manchester United a valuable win that ended Arsenal's unbeaten League run on 49 games.
Van Nistelrooy got the opener when he stroked in a contentious penalty after Sol Campbell's challenge on Rooney.
Dennis Bergkamp and Thierry Henry had Arsenal's best chances but they were denied by good saves from United keeper Roy Carroll.
Rooney slotted in from six yards to complete victory on his 19th birthday.
The win helped United reduce the gap on Premiership leaders Arsenal to eight points.
It also helped Van Nistelrooy avenge the taunts from Arsenal players after he missed a last-minute spot-kick in the corresponding fixture last season.
The game had been billed as a must-win encounter for United in the build-up and Rio Ferdinand led them out as stand-in captain, with regular skipper Roy Keane ruled out because of the flu.
Arsenal midfielder Patrick Vieira had overcome his fitness battle to play but his early error almost proved costly.
He let a pass slide under his foot and almost gifted United striker Rooney an early goal on his birthday.
But Kolo Toure flung himself to block Rooney's shot and, when Paul Scholes gathered the rebound and again played in Rooney, the teenager cut the ball back to an unmarked Ryan Giggs.
Giggs struck a true shot, only for some more desperate Arsenal defending to come to their rescue, with Campbell getting his body in the way of the strike.
Arsenal were then left bewildered when the referee waved play on after Freddie Ljungberg went down after a challenge from Ferdinand as he raced on to an Edu through ball.
The attack served as a warning to United as Arsenal started to get their free-flowing passing game into gear and a well-engineered move led to Bergkamp being played in on the United goal by Jose Antonio Reyes.
Campbell (right) conceded a penalty for a challenge on Rooney
But home keeper Carroll quickly came out to save at the striker's feet.
Arsenal looked dangerous whenever they held on to possession and Henry was put clear by Edu, only for the alert Carroll to again rescue his side by quickly coming off his line and blocking at the French striker's feet.
Tempers were on a knife-edge at a tension-filled Old Trafford and threatened to boil over on a couple of occasions before the half-time whistle.
United had to endure some tense moments in their goalmouth as Arsenal began to dominate following the interval with Bergkamp dragging a shot wide in a promising opening for the visitors.
But United did threaten, with Heinze heading wide, and they took the lead when Rooney earned a penalty after a foul by Campbell.
Van Nistelrooy stroked in the spot-kick and United could have had another penalty when Cole brought down Ronaldo as Arsenal pressed for an equaliser.
A Cole shot then went high, while Giggs saw a shot saved at the other end.
But a valuable win was wrapped up for United when Rooney added a late second from six yards.
Man Utd: Carroll, Gary Neville, Ferdinand, Silvestre, Heinze, Ronaldo (Smith 85), Phil Neville, Scholes, Giggs, Rooney, van Nistelrooy (Saha 90).
Subs Not Used: Howard, Brown, Miller.
Booked: Gary Neville, Phil Neville.
Goals: van Nistelrooy 73 pen, Rooney 90.
Arsenal: Lehmann, Lauren, Campbell, Toure, Cole, Ljungberg, Vieira, Edu, Reyes (Pires 70), Bergkamp, Henry. Subs Not Used: Van Persie, Taylor, Fabregas, Cygan.
Booked: Cole, Vieira, Edu.
Ref: M Riley (W Yorkshire).