
Wayne Rooney kept up his excellent record against hometown club Everton as Manchester United left it late to collect all three points.
Cristiano Ronaldo gave United the lead only for Tim Cahill to equalise; Ronaldo scored the winner from the penalty spot with just two minutes remaining.
It was a battling opening to the game, and referee Howard Webb was the central figure as he booked four players in 15 minutes - including Rooney.
Rooney then set up Carlos Tevez for the first chance of the game, but the Argentine's shot was deflected wide.
With 22 minutes gone, United grabbed the opening goal; good work from Ryan Giggs and Tevez set up Ronaldo to drill into the top corner on 22.
Everton bounced back almost immediately as Cahill leapt highest to convert Steven Pienaar's cross.
United responded with an incisive attack resulting in Rooney improvising a lob that Joleon Lescott headed off the line.
Ronaldo also fired over as the home side pressed, and this pattern continued into the second half.
Anderson's drive was well stopped by former United goalkeeper Tim Howard, while Rooney fed Tevez in the box and his shot was also saved.
Rooney once again almost broke the deadlock when he clipped the top of the bar with a terrific strike, yet time was running out for United.
However, with 88 minutes on the clock, Everton midfielder Pienaar stuck out his leg to bring down Giggs, and Ronaldo sent Howard the wrong way to seal the match.