Edin Dzeko scored Manchester City's 100th goal of the season as they continued to chase down top spot with a 4-2 win over Cardiff.