Premier League: Everton 2 Manchester City 3
In a thrilling encounter at Goodison Park, City did enough to claim three points and edge ahead of Liverpool by virtue of a significantly superior goal difference.
Manuel Pellegrini's men can therefore all but guarantee a second league crown in three seasons by winning their remaining matches, at home to Aston Villa and West Ham, while Arsenal are now assured of the final UEFA Champions League qualifying place as a result of Everton losing.
Ross Barkley opened the scoring for the hosts with a remarkable long-range effort, but Everton boss Roberto Martinez was made to pay for an ambitious 3-4-3 formation as City exploited his team's left-hand side.
Antolin Alcaraz was pulled out of position as Sergio Aguero levelled matters and the visitors were scarcely affected despite the mercurial Argentinian hobbling out of the action shortly afterwards.
Edin Dzeko scored either side of half-time but City inexplicably allowed the action to drift and Romelu Lukaku headed Everton back into the contest with a 65th-minute header.
A breathless finale ensued, yet City rallied to hang on in the city where their title dreams suffered a seemingly telling blow in a 3-2 loss to Liverpool three weeks ago.
City made an enterprising start, with Aguero often the architect, but Everton took a 10th-minute lead in sensational fashion.
England World Cup hopeful Barkley brought Goodison Park to its feet by curling Steven Naismith's lay-off into the top corner from 25 yards.
Yaya Toure brushed Leon Osman aside to blast over after 16 minutes, while Barkley jinked past Javi Garcia and Martin Demichelis at the other end to prompt a magnificent last-ditch tackle from Vincent Kompany.
Perhaps inspired by their captain's heroics, City drew level in the 21st minute.
Centre-back Alcaraz was drawn towards Toure, who slipped a pass though for Aguero to blast beyond Tim Howard at his near post.
However, in the act of scoring, Aguero appeared to sustain another leg problem in an injury-plagued season and the striker was replaced by Fernandinho.
The upshot was an advanced role for Toure and Phil Jagielka stabbed uncomfortably out of the goalmouth after the towering Ivorian wrought havoc down the Everton left.
It was proving a fruitful region for City and they moved ahead two minutes before half-time by exploiting the channel once more.
Howard thwarted Dzeko from an acute angle but when the ball was worked out to James Milner the big Bosnian was alive to the possibilities and headed home from his team-mate's pinpoint cross.
Everton had a glorious chance to draw level within a minute of the restart as Barkley stormed forward and Naismith shrugged off Pablo Zabaleta, but Joe Hart made a stunning low save to deny the Scotland international.
In a similar response to the one following Kompany's earlier brilliance, City streamed up field to give themselves breathing space.
Fernandinho sublimely controlled the attack and found Samir Nasri, whose low centre was turned in by Dzeko for City's 150th goal in all competitions this term.
Faced with the seemingly routine prospect of closing out a decisive win, City then faded badly and Lukaku reduced the arrears when he stooped to convert Leighton Baines' arching cross.
Bizarrely, City's defenders were then of greater use at the other end of the field, as Zabaleta and Demichelis went close to adding a fourth.
Lively Everton substitute Gerard Deulofeu rippled the side netting after cutting through the visitors with a mazy run.
A lengthy period of treatment for a shoulder injury to Dzeko brought about six minutes of stoppage time, but he would ultimately remain the hero.