Edin Dzeko equalised in the second minute of added time and Sergio Aguero scored the deciding goal two minutes later in an extraordinary end to the season.
City are set to parade the Premier League trophy before tens of thousands of fans with the players travelling through the city on Monday evening in an open-top bus to celebrate their incredible success.
Pablo Zabaleta’s first goal of the season after 39 minutes gave City the lead but it looked as if they had imploded after Djibril Cisse equalised three minutes into the second half then Jamie Mackie gave the visitors the lead on 66 minutes.
QPR were already down to 10 men at that point after Joey Barton was sent-off for elbowing Carlos Tevez and ugly scenes following the red card resulted in the five minutes of injury time.
Having held on for 25 minutes with a stoic backs-to-the-wall performance, Rangers then saw substitute Dzeko power home a close-range header.
And as Manchester United’s players and fans waited at the Stadium of Light with their 1-0 win over Sunderland sealed, Aguero danced into the area and fired a shot past Paddy Kenny at the near post.
Both City and United finished with 89 points, but Roberto Mancini's side had a goal difference eight goals superior to that of Sir Alex Ferguson's club.
Rangers boss Mark Hughes, a former United player who was sacked as City manager in 2009 to make way for Mancini, still had reason to smile after the crazy finale as his side stayed in the Premier League following Bolton's draw at Stoke.
City's long-suffering fans invaded the pitch at full-time as an unpredictable Premier League season reached its climax after the closest and most thrilling title race for over 20 years.
First place has fluctuated between the Manchester clubs all season with United top until the beginning of October before City went ahead until the start of March.
United then opened up an eight-point lead by Easter time but that evaporated after an erratic run - and City went back to the summit on goal difference on April 30 when they beat United 1-0 at the Etihad.
For weeks Mancini has said United remained favourites to take the title, but he changed tack slightly after City's 2-0 win at Newcastle last weekend and the Citizens became the fifth club to win the Premier League since its inception in 1992/93.
The afternoon was never going to be short of nervous moments, with United taking the lead at the Stadium of Light after 20 minutes and City struggling to penetrate a packed Rangers defence.
The breakthrough came six minutes before half-time via Argentine Zabaleta, although visiting goalkeeper Kenny should have done much better with the effort.
Yaya Toure played a ball through to the advancing full-back whose poke at goal was straight at the visiting custodian - and he let the ball slip through his gloves then was helpless as it looped in-off the far post.
The tension was ramped up on 48 minutes when Joleon Lescott made a complete hash of an attempted headed clearance and Cisse fired the Londoners level.
Just six minutes later and Rangers were down to 10 men after controversial midfielder Barton was dismissed for an off-the-ball incident with Tevez, the former City man elbowing the striker after the Argentine had kicked out at him – an incident missed by the match officials.
After being shown the red card, Barton kneed Aguero and headbutted Vincent Kompany in a melee before being hauled off the pitch by Micah Richards, although he still had time to confront Mario Balotelli before going down the tunnel.
Hughes brought on Armand Traore as they reshuffled and he silenced the Etihad by galloping 50 yards down the left flank before delivering a pinpoint cross which was headed home by Mackie at the far post.
It was just QPR’s third effort on goal and it looked like City were going to snatch defeat from the jaws of victory as they failed to break down a resolute visiting defence.
Kenny, who had clawed an Aguero effort off the line at 1-1, turned a Dzeko poke around the post and pushed away a Balotelli header as City threw the kitchen sink at Rangers.
There was anguish on the face of Mancini and most of those inside the stadium as despite 33 goal attempts, they still trailed when the fourth official held up the board to signal five added minutes.
But from their 19th corner, Dzeko powered home Silva’s delivery - and in a fairytale finish Aguero slammed home the winner with virtually the last kick of the Premier League season.