A stunning first-half strike from Leroy Fer looked to have sealed another valuable three points for QPR at home but Bony scored his ninth goal of the season two minutes into injury-time to salvage a hard-earned point for the visitors.
QPR were lucky not to be reduced to 10 men early on when Rob Green handled outside the area but it was Swansea who finished with a man less after Wayne Routledge was sent off with four minutes to play.
Harry Redknapp's side, unbeaten at Loftus Road since mid-October, are now two points above the relegation zone while Swansea sit ninth, three points off the top six.
The visitors started the brighter of the two sides, with Gylfi Sigurdsson in particular causing problems for the QPR defence.
It was the Iceland midfielder's superb first-time ball in the sixth minute that put Wayne Routledge in the clear and Green was lucky not to give away a free-kick and be sent off as he stopped the winger's progress by handling the ball outside the area.
QPR capitalised on their good fortune, gradually establishing a foothold in the game as Charlie Austin saw two shots blocked from close-range.
Swansea's early momentum had stalled and in the 20th minute, the hosts took the lead as Fer collected the ball 25 yards out and drilled it past Lukas Fabianski for his third goal of the season.
Rangers were in the ascendancy and should have doubled their advantage when a deep cross found Bobby Zamora at the pack post but the striker was unable to keep his header down.
Gomis could have made Rangers pay when he was set free twice either side of the half-hour but his first shot flew wide of the far post and his second rolled harmlessly into the hands of Green.
Eduardo Vargas tested Fabianski with a stinging effort from range and the Chilean tried his luck again shortly before the break, smashing Austin's cross against the outside of the post.
The second half began as frantically as the first and Austin was in the thick of the action again as his header was scrambled onto the post by Fabianksi.
Swansea emerged unscathed, however, and began to regain some control as the game drifted past the hour mark.
Gomis dragged a shot wide at the back post in the 70th minute while at the other end, Fer powered another long-range effort narrowly wide.
Bony was introduced for Sigurdsson with 20 minutes to play and the striker almost made an instant impact, curling a free-kick towards the top corner and forcing a superb save from Green.
The visitors cranked up the pressure and with 10 minutes to go almost grabbed an equaliser as Ki Sung-yeung's shot was blocked by Green and Marvin Emnes' follow-up header was cleared off the line.
Rangers should have put the game to bed on the counter-attack when Vargas found the side-netting but the hosts were given a boost in the 86th minute when Routledge was sent off for an altercation with Karl Henry.
In the 92nd minute, however, it was Bony who added a late twist to the tale, hammering past Green into the top corner to break Rangers' hearts.
There was still time for one more chance and Austin could have had the last word but he blazed over the bar from close range at the death and a pulsating game ended honours even.
Source : PA
Source: PA