Elano and Robinho celebrate City's opening goal at Goodison Park
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.
It means the Toffees miss the chance to jump up into fifth, with Aston Villa only managing a draw away to Bolton.
But for City manager Mark Hughes the win will come as a welcome relief, having recently faced questions about his future thanks to his side's Jekyll and Hyde form this campaign.
Fatigue played part in defeat - Moyes
While 11 victories at home is a record bettered only by local rivals United, one success on their travels before today has ensured Hughes's outfit has yo-yoed around mid-table all campaign.
However, right from the start the visitors looked capable of getting the better of an Everton side appearing to already cast one eye towards next month's FA Cup final at Wembley.
With Everton enjoying decent possession but lacking verve in attack, City played the counter-attacking game impressively.
Robinho was the key, terrorising right-back Tony Hibbert all match.
Right from the start the Brazilian looked lively, and he thought he had a good shout for an early penalty when he drifted past Hibbert in the box and went over Leon Osman's challenge, only for referee Alan Wiley to wave away the appeals.
Louis Saha and Osman had tame efforts easily saved for Everton, but City were far more threatening on the break.
Only a brilliant last-ditch block from Leighton Baines prevented Ireland giving City the lead from 18 yards just after the half-hour, and then on 35 minutes the visitors were ahead.
Elano was the creator, the midfielder finding his compatriot brilliantly with a 40-yard through-ball, allowing Robinho to dance into the box, past Jagielka, and fire in through Tim Howard's legs left-footed.
Everton responded well after the break, Segundo Castillo glancing a header narrowly wide moments before Shay Given produced a superb save to deny Marouane Fellaini, who had turned well in the box and fired a fierce volley goalwards from eight yards out.
But the hosts were caught out by another City counter on 54 minutes.
Robinho was again the spark as he picked out Ireland brilliantly from the left wing, the midfielder taking a touch and clipping past the advancing Howard with aplomb from 16 yards.
Jagielka should have got Everton back in it moments later when he headed Hibbert's cross over with Given unmoved.
Hughes delighted with 'exceptional' win
And his afternoon went from bad to worse when he fell awkwardly and had to be stretchered off with a nasty-looking knee injury.
Having already made all three substitutions, the defender's departure left the hosts with just 10 men - and City almost took advantage when Robinho jinked his way into the box only for Howard to save his shot.
Typically, the Toffees refused to give in, and substitute Gosling burst into the box and swept in an impressive consolation goal in the third minute of injury time.
However, in the end, and despite a total of seven added minutes, it was not enough for the hosts as City deservedly claimed a first win at Goodison Park in nearly 17 years.
Everton manager David Moyes: "We're disappointed but the players have put in a great effort in recent weeks so maybe this was going to be on the cards. There was a bit of fatigue there.
"We've conceded two counter-attacking goals and not defended particularly well - we needed to hang in a bit more at 1-0 and once the second went in we were always going to struggle.
"Unfortunately, too, the news is not good on Jagielka. I'd say it's more doubtful than hopeful that he'll play in the Cup final."
Man City boss Mark Hughes: "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.
"To be honest we could, and probably should, have won by more because I thought we were very comfortable.
"Robinho was excellent today, not just for the goals but his all-round game, and he is really hitting some form for us. He's had some stick this season but his play - and that of Ireland's - was outstanding."
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.