Precis innan pausvilan gjorde Everton 1-0 genom Ramiro Funes Mori, som tryckte in en retur från nära håll.
Men Manchester City kom tillbaka och gjorde 1-1 med en kvart kvar att spela. Sergio Aguero tog ner en långboll i en kontring, hittade en fri Jesus Navas - som placerade in kvitteringen i det bortre hörnet.
Men kort därefter nickade målmaskinen Romelu Lukaku in 2-1 till Everton. Belgaren mötte ett inlägg perfekt och kunde från nära håll ge Liverpool-klubben ledningen igen.
I samband med målet ådrog sig dock Lukaku en skada. Han fick i alla fall linka av planen och bytas ut kort därefter.
Matchen slutade 2-1 till Everton. Det är därmed fördel de blåvita inför returen på Etihad Stadium.
Evertons startelva: Joel, Baines, Mori, Stones, Coleman, Barry, Besic, Cleverley, Barkley, Deulofeu, Lukaku
Manchester Citys startelva: Caballero, Sagna, Mangala, Otamendi, Clichy, Delph, Fernandinho, De Bruyne, Toure, Silva, Aguero