Everton beat Manchester City to climb above Sven-Goran Eriksson's side into fifth place in the Premier League.
Everton's Tim Cahill in action against Man City at Goodison Park
Joleon Lescott slid home a close-range finish from Mikel Arteta's cross after 31 minutes to seal a battling win.
Tim Cahill missed an open goal as Everton took charge of the early stages and Lescott's goal was deserved, although City appealed for offside.
City dominated possession after the break, but Martin Petrov wasted their only chance in injury time.
Lescott's goal was reward for an outstanding personal performance, and made amends for the own goal that cost his side a draw in the Carling Cup semi-final at Chelsea.
Everton were without Yakubu and Joseph Yobo - on Africa Cup of Nations duty with Nigeria - and the injured Andrew Johnson, but Arteta returned after suspension.
City recalled Elano in place of Stephen Ireland as Eriksson's team attempted to maintain their fine form.
The opening exchanges were tight, but it was Everton who created the better opportunities.
Cahill should have given Everton the lead after 24 minutes, first forcing a fine save low down from Joe Hart and then firing the rebound over the top of an unguarded goal.
Everton went ahead seven minutes later when Lescott turned home Arteta's cross at the near post. City appealed for offside, but Petrov may just have played Lescott on and Everton got the benefit of a borderline decision.
City then had their first serious spell of possession, but lacked a cutting edge to go with their approach work.
Everton were penned back at the start of the second half, and Eriksson made a bold substitution after 54 minutes, sending on Rolando Bianchi and Gelson Fernandes for Nery Castillo and Didi Hamman.
It sparked a response from Everton boss Moyes, who sent on James Vaughan for James McFadden in a bid to wrest the initiative back from City.
Vaughan's physical approach managed to unsettle City's defence, but clear chances were at a premium at both ends.
Cahill was always a threat at set-pieces and he rose to head Arteta's free-kick just off target.
Petrov had City's best, indeed only, clear chance in the final seconds but his low drive was well held by Tim Howard.
Everton manager David Moyes:
"It was a great win for us. We were short of bodies and I have to give a big thanks to every one of my players out there.
"Manchester City played very well with the ball, but we were aware of that. We were without quite a few of our flair players, so we had to find other ways to win the game and that's what we did.
"I was delighted for Joleon Lescott to score the winner. He's so important for us. He's got six goals now - but I've told him all the good defenders get 10."
Manchester City manager Sven-Goran Eriksson:
"It's frustrating to lose, but even more frustrating to play as we did in the first 40 minutes.
"We were knocking the ball too long and challenging for second balls and we shouldn't do that because we are not very good at it. We were not brave enough to bring the ball out from the back and kept giving the ball away.
"We didn't create enough chances to get a draw. We want to try and get into the top four, but we have to play better than we did in the first half if we want to think about that."
Everton: Howard, Hibbert, Jagielka, Lescott, Nuno Valente, Arteta, Carsley, Neville, McFadden (Vaughan 60), Cahill, Anichebe (Baines 90).
Subs Not Used: Ruddy, Gravesen, Stubbs.
Booked: Cahill, Carsley.
Goals: Lescott 31.
Man City: Hart, Onuoha, Richards, Dunne, Ball, Corluka, Hamann (Gelson 56), Petrov, Elano, Castillo (Bianchi 57), Vassell (Ireland 69).
Subs Not Used: Isaksson, Garrido.
Ref: Mark Halsey (Lancashire).
BBC Sport Player Rater man of the match: Everton's Mikel Arteta 8.81 (on 90 minutes).
Please note that you can still give the players marks out of 10 on BBC Sport's Player Rater after the match has finished.