In-form Romelu Lukaku's 12th goal in as many matches gave Everton a deserved 2-1 victory over lacklustre Manchester City in their Capital One Cup semi-final first leg at Goodison Park.
The Belgium international's 19th goal of an increasingly impressive season capped a dominant Toffees' performance against the three-time League Cup winners - but it came at a cost as the striker limped off with nine minutes to go.
Centre-back Ramiro Funes Mori had given the hosts the lead on the stroke of half-time before substitute Jesus Navas' first goal since September 2014 levelled things up with 14 minutes to go - but that lasted for less than two minutes.
Roberto Martinez's unbeaten record at Goodison in cup matches extends to nine matches, with seven wins as manager of Everton and previously Wigan.
A talking point before kick-off was both sides' change of goalkeeper - Martinez restoring Joel Robles for the cup competition - although there has been a growing clamour for the Spaniard to be given a longer run at the expense of Tim Howard - and Willy Caballero replacing Joe Hart.
They were decisions which proved to be instrumental as Everton's number one made an excellent save from Kevin de Bruyne in the second half, while Hart might have dealt better with Ross Barkley's shot better which led to the opening goal.
Funes Mori rammed home the rebound in first-half added time after Caballero, possibly distracted by Lukaku in an offside position in front of him, pushed the ball straight back out instead of diverting it sideways away from danger.
It capped a cagey first half in which City appeared to be going through the motions - Yaya Toure a notable offender as he found himself in the pocket of the excellent Mo Besic - with De Bruyne and David Silva shooting wide and Nicolas Otamendi off-target with a header.
It led to a tense atmosphere inside Goodison which was only broken by the second loudest cheer of the night, when Besic tracked back to dispossess Toure with a brilliant recovering tackle.
Everton twice had the ball in the net through John Stones and Lukaku, only to be rightly flagged for offside on both occasions - even if they did appear to benefit from the lack of a linesman's flag when it really counted.
Robles had hardly been tested but he reacted well to parry Sergio Aguero's shot and Funes Mori blocked the Argentinian's rebounded effort before taking greater decisive action at the other end.
Aguero, rarely involved for an hour, sliced a good opportunity wide and Fernandinho headed into the arms of Robles - but Everton dominated the early stages of the second half.
Caballero blocked Barkley's angled shot after muscling Otamendi off the ball, while half-time substitute Martin Demichelis almost turned Leighton Baines' cross into his own net.
Robles' brilliant low save from De Bruyne fully justified his inclusion but he was powerless to prevent Navas' equaliser after Everton were caught by a rapid counter-attack which left them three on three at the back. Seamus Coleman allowed Aguero to turn him far too easily and lay on the pass for the equaliser.
City, with all their quality and experience, should have at least seen out the game from there but Barry's inviting cross asked to be finished off and Lukaku obliged with a powerful header.
The hosts finished the match with 10 men as Coleman hobbled off after Lukaku's departure used up their third substitute - but in the short time which remained the visitors could not make the numerical advantage pay.
Goal-scorer Ramiro Funes Mori was obviously delighted with Everton's performance on the night.
"The team did a great job. When we had to defend, we defend, when we had to go forward we were great offensively. 2-1 is good for us, we hope to keep it up," said the Argentinian.