City had won just one of it's last 15 matches at Goodison Park and looked like continuing their poor run when Ross Barkley curled in a brilliant shot to give Everton an 11th-minute lead.
However, Sergio Aguero equalised in the 22nd before going off injured and Dzeko scored twice in a five-minute span around halftime to put City 3-1 ahead.
Romelu Lukaku's goal in the 65th set up a tense finish but City held on to provisionally go top of the standings on goal difference from Liverpool.
Victories in its two remaining games - at home to Aston Villa on Wednesday and West Ham on Sunday - should clinch City a second championship in three years.
EPL: Edin Dzeko's Brace Takes Manchester City to Top of Table
Advertisement