Manuel Pellegrini’s side were stunned as George Boyd scored the decisive goal with a crisp half-volley to give the Clarets a deserved victory which boosted their survival hopes.
The dismal display means reigning champions City are now five points behind leaders Chelsea, who host Southampton on Sunday, having played two games more than the west London club.
It was also terrible preparation for their bid to overturn a 2-1 first leg deficit when they travel to Barcelona for a Champions League last 16 clash in midweek.
City captain Vincent Kompany returned to the starting line-up after being an unused substitute for their 2-0 win over Leicester, while Pablo Zabaleta, Gael Clichy, Fernandinho and Edin Dzeko were all recalled.
Burnley boss Sean Dyche made two changes as Michael Duff and Sam Vokes came in for Michael Keane and Michael Kightly.
City struggled to find their rhythm throughout the contest and Burnley showed plenty of positive intent from the off.
Clarets right-back Kieran Trippier was particularly threatening and the home supporters appealed for a penalty when his cross struck Gael Clichy, while Ben Mee headed over from a corner.
Yaya Toure’s influence started to grow and on 20 minutes he slipped a clever ball through for Sergio Aguero, who powered past Scott Arfield only to see Mee block his shot.
City finally registered a meaningful effort on target just before the half-hour mark when Fernandinho dispossessed Sam Vokes and slipped in Dzeko, who saw his low effort saved at the near post by Burnley goalkeeper Tom Heaton.
Moments later Arfield’s low drive brought a diving save out of Joe Hart in the City goal, and although the visitors dominated the remainder of possession before the interval they could not find a way through a disciplined Burnley defence.
– Poor touch –
Aguero was one of the few players in a City shirt that had the desire to grab the game by the scruff of the neck in the second half.
And he spun the Burnley defence on the halfway line and sent David Silva clear only for the Spain midfielder’s initial poor touch to let him down.
The hosts were not without chances of their own, though, and Boyd sweetly connected with a volley on the edge of the area but his effort flashed just past the post.
City failed to take heed of the warning and found themselves behind in the 61st minute when Martin Demichelis upended Danny Ings in a dangerous position.
Tripper swung the resulting free-kick into the box and Kompany’s headed clearance dropped for Boyd on the cusp of the box and he arrowed a half-volley through a crowded area and into the corner of the net.
Pellegrini introduced Wilfried Bony for Dzeko shortly after the goal and the Ivory Coast striker got his head on the end of Silva’s flighted free-kick, although he failed to generate enough power and Heaton gathered.
Aguero then created an opening for Bony on the break, however the striker’s awkward bouncing shot from 18 yards was smothered by Heaton.
With eight minutes left Toure swung the ball into the box for the head of Aguero, who could only direct his effort from close range over the crossbar.
City increased the pressure on the Burnley goal in the remainder of the game and appealed for a penalty when Zabaleta went down under a slight touch by Mee but referee Andre Marriner waved away the appeals.
Despite four minutes of additional time the hosts hung on to secure a victory which moves them to within a point of safety with nine games left.