Robinho scored one and created another as Manchester City's bid to finish seventh and secure Europa League qualification gathered pace at Everton.
The Brazilian opened the scoring just after the half hour, latching on to Elano's through ball and clipping in.
And he then played in Stephen Ireland to wrap up the victory, the midfielder slipping past Tim Howard from 16 yards.
Dan Gosling swept in a consolation late on, but a bad injury to Phil Jagielka did much to sum up Everton's day.
Mark Hughes said: “I thought we were really good value for the win today. There was a real focus to our play, we were dynamic and our determination shone through.
"Yes, it was possibly a good time to play Everton, but that shouldn't take anything away from our win - we deserved it.”
City: Given, Richards (Fernandes 57), Onuoha, Dunne, Bridge, De Jong, Kompany, Elano (Evans 88), Ireland, Robinho, Caicedo (Petrov 84)