Romelu Lukaku's 19th goal of the season gave Everton a 2-1 win over Manchester City in their League Cup semi-final first leg clash on Wednesday.
Everton haven't lifted a trophy since the 1995 FA Cup but they took a step closer to Wembley and a possible repeat of their 1984 League Cup final with local rivals Liverpool thanks to Lukaku's late winner.
Liverpool lead Stoke 1-0 from the first leg of their semi-final and Manchester City will still be hopeful of turning this tie round as they look to repeat their 2014 success in the competition.
When Jesus Navas cancelled out Ramiro Funes Mori's first-half goal, City looked to hold a slender advantage ahead of the home leg in three weeks' time but Lukaku's headed goal 12 minutes from the end means the underdogs hold sway.
Having won only three of their 11 Premier League games at Goodison Park this season -- conceding 20 goals in the process -- home advantage could have been seen as negligible for Everton as they looked to reach the semi-finals of the competition for the first time since 2008.
City’s win at Watford last Saturday was their first away from home in the league since September but they did score four times in winning at Sunderland to launch their League Cup run and had rattled in 13 goals in three ties to reach the last four.
They started as they meant to go on as they continue a pursuit of four possible trophies with all the possession in Everton’s half in the opening stages.
But Roberto Martinez -- who masterminded Wigan’s shock FA Cup final win over City in 2013 before joining Everton as manager later that month -- is happy for his team to soak up early pressure as he tries to solve Everton’s defensive problems.
And having kept City at arm’s length, bar a header from Nicolas Otamendi which went just wide following a corner, Everton grew into the game as an attacking threat.
Twice the home side had the ball in the net but John Stones and Lukaku were rightly penalized for off-side.
But then after Sergio Aguero had gone close for City with efforts saved by Joel Robles and blocked by Funes Mori they did make an effort count by taking the lead a minute into first-half stoppage time.
Again Lukaku strayed into an off-side position but the ball dropped instead for Funes Mori after Willy Caballero had saved Ross Barkley’s fierce shot following a corner and the defender hooked in his second goal for the club.
Everton didn’t let the tempo drop as they looked to push home their advantage after the break with Gerard Deulofeu testing Caballero with an attempted chip.
The City keeper, deputizing for rested England number one Joe Hart, then made a better save to deny Barkley after the midfielder had brushed aside Otamendi and raced into the box to create a shooting chance.
But the visitors began to threaten themselves as they looked to level a pulsating tie.
Aguero sliced an effort wide after being set up by David Silva and Robles was then grateful to grab a header from Fernandinho following a Navas cross.
The Everton keeper was tested again as Kevin de Bruyne played a one-two with Aguero before curling an effort towards the bottom corner.
And City’s pressure paid off with 14 minutes to go when they made it 1-1 with a superb goal on the break.
Fernandinho’s long ball released Aguero and after running at the Everton defence, he slipped the ball into the path of Navas who side-footed home his first goal since September, 2014.
City would have been delighted to have been going back to the Etihad Stadium on level terms but parity lasted just two minutes as Gareth Barry’s cross was powerfully headed home by Lukaku to give Everton the edge.