The Clarets handed former England goalkeeper Paul Robinson a debut as captain Tom Heaton was ruled out with a calf injury, while Citizens boss Pep Guardiola selected Yaya Toure in the Premier League for the second straight week.
Sean Dyche's men started well, with Jeff Hendrick having an early penalty shout waved away after being barged into by Nicolas Otamendi.
However, they opened the scoring on 14 minutes when following a long clearance by Robinson, Dean Marney was first to the loose ball and smashed in on the volley from 25 yards.
That seemed to bring the Citizens to life and having spurned a number of half chances, Sergio Aguero prodded home an equaliser after Burnley had failed to clear a Raheem Sterling corner.
It meant the teams headed in level at the break and City remained in the ascendancy following the interval and eventually went ahead on the hour mark and it was Aguero who again benefitted from slack defending.
Both Ben Mee and Stephen Ward failed to clear the ball after Yaya Toure had gone down in the box and eventually it was the Argentine who deflected home following good work by Fernandinho.
Despite their lead, Pep Guardiola's men looked less than convincing in defence and continually dropped back towards their own goal.
Burnley did their best to pile the pressure on but failed to create anything of real note until stoppage time when Michael Keane almost bundled home and Ashley Barnes tested Claudio Bravo with an overhead kick.
City held on though, claiming a hard-fought three points at Turf Moor, with the result, temporarily at least, taking them back to the top of the Premier League.