The damaging defeat leaves the champions five points behind leaders Chelsea but having played two games more.
And they can only have themselves to blame after another sub-standard display against Burnley, who are now just one point adrift in the relegation zone.
The Clarets were fully deserving of victory and secured the points on the hour mark when George Boyd drilled in a fantastic first-time shot from the edge of the box.
David Silva and Sergio Aguero wasted good chances for City, who were also denied an injury-time penalty when Pablo Zabaleta appeared to be caught by a sliding challenge from Ben Mee.
Both the result and the disappointing performance are far from ideal preparation for Manuel Pellegrini’s side ahead of their Champions League trip to Barcelona in midweek.
City again looked unconvincing against the hard-working Clarets and gave the ball away cheaply on too many occasions.
Vincent Kompany’s return was one of five changes to the City starting line-up, while Sam Vokes was handed his first Premier League start by Sean Dyche.
Burnley fought back from 2-0 down to draw 2-2 at the Etihad in December and it was clear they were up for the fight again from the first whistle.
They pressed the visitors all over the pitch and restricted them to few clear opportunities on goal.
The best chance of the first half fell to Edin Dzeko but he couldn’t beat Tom Heaton after being played in by Fernandinho.
Joe Hart was called into action at the other end to claim a deflected Scott Arfield shot before Aguero smashed an effort into the side-netting.
The second half proved a much livelier affair with both sides showing greater urgency.
Aguero stretched the Burnley defence with a nice turn and run from halfway but Silva’s touch let him down when he was played through on goal by the Argentine.
Aguero then stabbed an effort just wide himself when he met a Zabaleta ball from the right with a quick snap-shot.
Burnley upped their tempo in response and Boyd served warning of his prowess with a volleyed effort from 20 yards which flew just wide.
He went one better to give the Clarets the lead just after the hour, hitting a brilliant half-volley from the edge of the box after a free-kick was headed out to him.
Pellegrini immediately tried to shake things up by sending on Wilfried Bony for Dzeko and then throwing on Stevan Jovetic.
But City could not penetrate the Clarets defence as Aguero headed a great chance wide from Yaya Toure’s cross.
The visitors were then denied a penalty in injury-time when Mee appeared to catch Zabaleta in the box with a sliding tackle.
Burnley: Heaton (6), Trippier (7), Duff (6), Shackell (7), Mee (6), Barnes (7), Arfield (6), Jones (6), Boyd (8), Vokes (7), Ings (5).
Subs: Reid (5), Ward (5).
Man City: Hart (6), Zabaleta (6), Kompany (5), Demichelis (5), Clichy (6), Navas (6), Fernandinho (5), Toure (5), Silva (5), Aguero (6), Dzeko (5).
Subs: Lampard (5), Bony (5), Jovetic (5).
Man of the match: George Boyd.
Sign in to watch highlights of Burnley’s shock victory over Manchester City.