Manchester City secured a gripping 3-2 win at Everton to go top of the Premier League and take a firm hold on the title race.
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 pulled 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.
|Coach: Roberto Martínez|
for P. Jagielka 66'
for L. Osman 83'
|Liverpool can make Champions League, says fanzine editor|
|Walsh: Hull clash crucial for Leicester|
|Toure, Aubameyang and Enyeama make shortlist for African gong|
|Docherty backs Chelsea to win two-horse race|
|Liverpool could benefit from Hyypia influence - Scales|
|Saudi Arabia name Asian Cup squad|
|Forty-year-old Cahill no problem for Postecoglou|
|Wenger criticism baffles Redknapp|
|Leicester must strengthen in window - Walsh|
|United not title contenders - Docherty|
|Koeman: Southampton youngsters will get a chance|
|Dyche empathises with Liverpool striker crisis|
|Cagliari turn to Zola|
|Rooney thanks Van Gaal for Christmas break|
|Cruzeiro offer Paulinho Tottenham exit chance|
|Carlisle´s wife grateful to Burnley|
|Katebe called up to Zambia AFCON squad|
|Cape Verde name AFCON squad|
|Finke names much-changed Cameroon squad|
|Grant omits World Cup troublemakers for AFCON|
|Blackpool striker Ranger goes AWOL|
|Allardyce relishing Mourinho meeting|
|Ashley fails to increase Rangers stake|
|Crystal Palace v Southampton: Koeman calls for focus|
|Warnock targeting striker in January|
|Chelsea v West Ham: Adrian vows visitors will attack|
|Heskey signs short-term deal at Bolton|
|Everton v Stoke City: Martinez eyes strong form|
|Juninho defends David Luiz|
|Burnley v Liverpool: Dyche defends Rodgers ahead of Turf Moor test|
|Arsenal v QPR: Wenger eyes festive momentum|
|Liverpool are growing in confidence, says Rodgers|
|Redknapp: Austin future could depend on survival|
|Martinez wants Everton consistency|
|Barca want Neymar until 2020, says agent|
|Jones undeterred by pressure of Liverpool starting role|
|Allardyce ´knows how to beat managers´ - Carroll|
|Jones playing for a new contract|
|China select Evergrande spine for Asian Cup|
|A-League Preview: Koren tips City to build|
|Khedira keen to fight for Real spot|
|Southampton confirm Elia deal|
|Cellino to remain as Leeds owner until after appeal|
|Manchester United v Newcastle United: Van Gaal demands domination|
|Van Gaal refuses to dismiss Bale speculation|
|Sunderland v Hull City: Bruce sure of Hull revival|
|Swansea City v Aston Villa: Lambert optimistic of away success|
|Agbonlahor red rescinded|
|Falcao depends on team-mates to perform - Van Gaal|
|Monk dismisses talk of Gomis move|
|West Brom v Manchester City: Pellegrini to experiment again|
|Xavi: I was ready for New York switch|
|Ibrahimovic fumes at awards snub|
|Irvine: No approaches for Berahino|
|Pearson determined to revive Leicester fortunes|
|League Two Preview: First host third as Wycombe meet Luton|
|League One Preview: Buoyant MK Dons eye more glory, Bristol City seek response|
|Championship Preview: Pritchard plotting to end Ipswich run, Bournemouth host Fulham|
|Kaboul place not guaranteed by captaincy - Pochettino|
|Koeman hopeful of Elia deal|
|Atletico president not ruling out Torres return|
|Swansea secure Oliveira signing|
|No excuses for Pellegrini|
|Walcott pace unaffected by injury|
|Former Real Madrid star Roberto Carlos backs Ronaldo for Ballon d´Or|
|Former PFA chairman Carlisle ´stable´ after serious incident|
|Balotelli remorse saved him from longer ban|
|Bayern midfielder Martinez ´on track´ with rehab|
|Pardew ´overjoyed´ at Gutierrez return|
|Spurs confirm Yedlin to join in January|
|Zeman sacked by Cagliari|
|Casillas: I´m going nowhere|
|Bruce demands McShane apology|
|Pulis would welcome Brighton talks|
|Buffon: Juve angry after Supercoppa loss|
|Arteta out until new year|
|Rangnick: Kampl deserves Dortmund switch|
|PFA offers support to Carlisle after serious incident|
|Napoli can mount title bid - Higuain|
|Cech´s agent urges Liverpool and Arsenal to make bid|
|Hart happy to be back to his best|
|Terry thrilled with ´revelation´ Matic|
|Perez rues ´unfair´ Tyne-Wear derby result|
|Khalfan Ibrahim returns from injury|
|Magath slams ´sensitive´ Fulham|
|´Limited´ attacking options inspire Postecoglou´s selections|
|Carlisle reportedly involved in serious incident|
|Primeira Liga Review: Braga leapfrog Guimaraes|
|Hughes upbeat despite Stoke defeat|