The result left United six points in front of second-placed local rivals Manchester City.
However, City could cut that gap to just three points if they beat bottom of the table Wolves later on Sunday,
If they do defeat Wolves, City will have the chance to go top of the table on goal difference if they beat United in a Manchester derby at Eastlands a week on Monday.
Everton, who last won at Old Trafford 20 years ago, took a 33rd minute lead when Nikica Jelavic headed in Tony Hibbert's cross as the visitors looked to bounce back from their FA Cup semi-final defeat by cross-town rivals Liverpool.
But United were level before the break when Wayne Rooney, against his former club, powered in a header from Nani's cross.
Danny Welbeck's superb curling shot past former United keeper Tim Howard gave Sir Alex Ferguson's men a 2-1 lead before Nani's clever finish on the hour made it 3-1.
Everton, however, would not lie down and Marouane Fellaini's first time shot from Tony Hibbert's cross cut United's lead to 3-2.
But when Welbeck teed up Rooney for the England striker's second goal in the 69th minute, it appeared United had wrapped up all three points.
Everton though had other ideas with Jelavic scoring his second seven minutes from time and, two minutes later, South Africa's Steven Pienaar swept in Fellani's cross.
United almost won the match in the fifth and final minute of stoppage time but Howard saved from Rio Ferdinand.