The Hoops dominated play in the first period but were made to pay for their profligacy in front of goal after referee Michael Oliver awarded Villa a penalty the 58th minute.
Armand Traore was adjudged to have fouled Gabriel Agbonlahor in the box, allowing Barry Bannan to strike home from the spot.
The referee's performance came under further scrutiny from the home faithful when Alan Hutton appeared to handle the ball twice in quick succession.
QPR's hopes of grabbing a leveller looked to have been thwarted when Traore was sent off late on, but they managed to eke out their first home goal of the campaign.
Substitute Heidar Helguson's cross deep into stoppage time was pulled back by Stephen Warnock onto Dunne, who could not help but score his ninth own goal in Premier League history.
Despite Prime Minister David Cameron cheering on the visitors, QPR started the match brightly and carved out their first opportunity in the third minute.
With only Shaun Wright-Phillips for company, Jay Bothroyd decided to go alone down the left flank before unleashing a drive that Dunne was forced to block.
The home side again went close two minutes later, with talisman Adel Taarabt twisting and turning before curling a 30-yard effort onto the post.
QPR continued to attack with intent and both Wright-Phillips and Taarabt had close-range shots blocked in a 14th-minute melee.
Bothroyd glanced a header just wide minutes later as the west Londoners continued to press for the opener.
After a break in play to patch up James Collins following a collision with Bothroyd, Rangers went close once more.
Alejandro Faurlin's cross-field ball was met by neat interplay between Luke Young and Bothroyd, but Joey Barton could not connect with the latter's whipped cross at the back post.
QPR continued to enjoy the better of the possession but their enthusiasm was tempered by sturdy defending from the visitors.
As the first period looked to be petering out, the match flared up as Warnock received yellow for a crunching challenge on skipper Barton.
And moments before half-time goalkeeper Paddy Kenny saved Bannan's 20-yard free-kick with a superb one-handed stop.
Villa looked rejuvenated after the break, controlling possession and looking dangerous down the flanks.
The visitors almost turned their dominance into the opener when Fabian Delph latched onto a ball from Bannan, although the former could only direct his flick wide.
However, Alex McLeish's side did take the lead shortly afterwards when Traore was adjudged to have fouled Gabriel Agbonlahor in the box.
Bannan stepped up to the take the spot-kick and fired home to the delight of the 1,701 visiting fans.
The travelling support were on their feet once more in the 60th minute but Charles N'Zogbia's near-post effort hit the side netting.
Bannan saw a shot saved at the near post as Villa looked to extend their advantage, forcing Warnock to shuffle the pack.
DJ Campbell replaced Bothroyd as QPR looked to find an equaliser, which almost came through Wright-Phillips but Shay Given did well to save.
The Shepherds Bush outfit were starting to up the ante once more as the match approached the final 20 minutes.
QPR had strong shouts for a penalty turned down after Shaun Derry's header seemed to strike Hutton's arm on the line, leading to choruses of '1-0 to the referee' around Loftus Road.
The Hoops launched a barrage of attacks as the clock wound down and had calls for another penalty turned down when substitute Tommy Smith's cross struck Hutton's hand.
With QPR chasing the game, they were reduced to 10 men when Traore was handed a second yellow for a 90th-minute lunge on Marc Albrighton.
But they managed to grab an equaliser three minutes into stoppage time when Helguson's cross was cleared by Warnock into Dunne, who could not stop the ball rebounding off him and into the goal.