The Red Devils were uninspired and comfortably beaten by Roberto Martinez's men, who opened the scoring from the penalty spot and could have had plenty more than two goals
The Toffees took the lead from the penalty spot through Leighton Baines, a transfer target for the Red Devils last summer, after Phil Jones's clear handball blocked a Romelu Lukaku shot.
Kevin Mirallas doubled their advantage shortly before half-time, slotting home on the counter after being played in by a fantastic delivery from Seamus Coleman, and United could summon no serious effort to get back into the game.
The result keeps Everton a point behind Arsenal in the race for fourth, while United remain seventh, six points adrift of sixth-placed Tottenham.
Steven Naismith, recalled to the side along with James McCarthy, ought to have given Everton the lead in the 22nd minute. Lukaku's knockdown found the Scotland international all alone inside the area but he blazed wildly over the crossbar from just inside the area.
Everton doubled their lead two minutes before the break, Mirallas finishing from a tight angle after being slipped in by Coleman.
Lukaku had the chance to make the game safe in the 62nd minute but the Belgian fired straight at David de Gea after being picked out by a sensational pass from Mirallas on the halfway line.
Naismith spurned another opportunity before being denied by De Gea at full stretch 10 minutes from time.
Former United goalkeeper Tim Howard, fresh from signing a contract extension, was not seriously called into action until three minutes from the end, when he made a superb save from ex-Everton man Wayne Rooney to preserve his clean sheet.
The win, which secured the Toffees' first league double over United for 44 years, provided a welcome tonic for Martinez and his side after the disappointment of Wednesday's surprise 3-2 defeat to Crystal Palace, while the result leaves Moyes with plenty to ponder.