Ryan France and Billy Paynter scored 5 minutes either side of half time to give City the two-goal lead. France headed in Craig Fagan's left wing cross in the 40th minute. Paynter's first for the club was also a header, from Mark Lynch's cross after the break.
But City slipped up six minutes later as Gareth Ainsworth pulled one back.
France came close to chipping in his second of the game, but instead it was Ainsworth who made it a brace, sending a deflected shot past Boaz Myhill to level it at 2-2 in the 66th minute.
Things got worse for City ten minues later when Myhill was shown a red card. He caught the ball in his area but his momentum took him outside, and the referee sent him off for handball. Matt Duke came off the bench to make his 5th appearance for the club.
It was a tense ending to the game as QPR threatened to take all three points, but City held on for the draw. The home side ended a four match losing streak.