Romelu Lukaku scored his 19th goal of the season as Everton beat Manchester City 2-1 in their Capital One Cup semi-final first leg.
The striker headed home Everton's second goal in the 78th minute, but pulled up afterwards holding his ankle and had to be substituted.
Jesus Navas had restored parity for City a couple of minutes earlier, after Ramiro Funes Mori had put the Toffees ahead on the stroke of half-time.
Roberto Martinez's side will take a narrow advantage to the return leg at the Etihad on January 27, although they wait to see the extent of Lukaku's injury and also whether Seamus Coleman faces a spell on the sidelines after suffering an injury late in the game.
Lukaku has scored 12 goals in as many matches and could be key to Everton's hopes of ending their 20-year wait for a trophy.
Both sides made three changes from their previous outings, including replacing their first-choice keepers, with Everton bringing in Joel Robles for Tim Howard and City replacing Joe Hart with Willy Caballero.
City made the brighter start, controlling possession in the opening 10 minutes without creating any clear openings.
In fact, chances were few and far between at either end, with Nicolas Otamendi going closest for City when he headed wide from a corner.
Everton did twice have the ball in the net through John Stones and Lukaku, but both times the flag went up for offside.
Robles was called into action late in the half to save from Sergio Aguero, who saw his follow-up shot blocked by Funes Mori.
The Everton defender was then involved in the most significant moment of the half in injury-time as he fired home from close range after Caballero saved from Ross Barkley, although City protested that Lukaku was offside during the move and possibly obstructing the keeper's view.
The goal galvanised the hosts and they played with more purpose and pace after the break.
They could have been pegged back, though, as Aguero wasted a chance from six yards out by slicing over the bar and then Fernandinho headed into the ground from close range.
Barkley had a shot saved at the other end before Robles pulled off a fine stop to keep out Kevin De Bruyne's first-time shot.
City felt they should have had a penalty when Navas went down in the box, but they did get the equaliser in the 76th minute as they broke quickly from an Everton corner, Aguero controlled a long ball and fed in Navas, who finished well past Robles.
But the celebrations were shortlived as Everton restored their lead minutes later, Lukaku heading in from Gareth Barry's cross.
The striker looked to have taken a knock before scoring and was given a rousing reception as he was taken off soon afterwards.
Everton suffered another injury blow in the final few minutes as Coleman was forced off, having used all three substitutes. But they managed to see out the game and ensure they take a lead to the Etihad.