After Sunrisers, asked to bat first, made 155 for five, thanks to a 62-run partnership between skipper and opener Shikhar Dhawan (37, 36b, 4x4) and David Warner (61, 49b, 4x4, 3x6), de Villiers guided RCB to their third win in six outings with a memorable knock that underlined his status as one of the best T20 batsmen in world cricket.
Sunrisers were kept in the hunt by seamer Bhuvneshwar Kumar (2 for 16) and leg-spinner Karn Sharma (3 for 17), but the visitors could not stop the marauding de Villiers.
The other Sunrisers bowlers, including spearhead Dale Steyn (39 runs in 4 overs), were rather disappointing as they suffered their fourth defeat in six outings.
The RCB chase was far from convincing as they lost opener Parthiv Patel (3) and skipper Virat Kohli (0) in the very second over bowled by Bhuvneshwar Kumar.
Chris Gayle (27, 19b, 3x6, 2x4) and Rilee Rossouw (14) battled on and just as the Jamaican looked to get going after smashing Ishant Sharma for two sixes and a boundary, he fell to the guile of Karn Sharma, caught at long-on by Darren Sammy.
Karn Sharma struck soon after, trapping Rossouw plumb in front as the South African missed a reverse hit and RCB looked to be flat on the mat at 59 for 4 in the 11th over.
De Villiers and Yuvraj Singh (14) put on 36 runs for the fifth wicket in 4.2 overs, but Karn Sharma, bowling his fourth over, struck again. The former RCB player enticed Yuvraj Singh into a sweep and the top-edge went straight to substitute Moises Henriques as the hosts slipped to 95 for 5 in the 15th over.
With the asking rate mounting, RCB needed one big over to move closer to the target and Sammy provided that as he conceded 19 runs in the 16th over with de Villiers blasting two sixes and a four. It meant RCB needed another 40 runs in the last four overs.
Steyn bowled a brilliant 17th over, but Bhuvneshwar Kumar leaked eight in the next as de Villiers picked up two boundaries. Thus, RCB required 28 off the final two overs and the stage was set for another heroic act by de Villiers.
In the dramatic 19th over, de Villiers took his compatriot Steyn to the cleaners with three sixes and a boundary that left RCB to get just four runs off the last over.
Fittingly, de Villiers struck the winning runs, a boundary off the penultimate ball, after some tense moments following the run out of Starc earlier in the over.
The Hyderabad innings progressed in fits and starts without a steady momentum. Dhawan, not in best of form this IPL season, hung around to provide company to Warner.
The Aussie, on his part, has certainly played better and perhaps, was left frustrated that he did not get as much strike as he would have wanted, especially at the death.
Both the southpaws did unleash a few big shots, but could not really dominate the bowling that, at best, was steady, with Starc being the pick of the lot.
Bangalore had started well enough with two early strikes with Starc getting rid of fellow-Aussie Aaron Finch (13) who got all tangled dealing with a snorter that he edged to akeeper Parthiv Patel.
At the other end, local lad Lokesh Rahul (6) became Ashoke Dinda's 100th T20 wicket when he slashed at a rank short ball for Chris Gayle, the lone slip, to take a blinder.
Thereafter, it was the Dhawan-Warner show as Sunrisers purred along without able to accelerate.
Dhawan, Darren Sammy (8) and Naman Ojha (15) departed at crucial junctures, all caught in the deep while Warner fell to Starc in the final over that the Aussie seamer bowled brilliantly.
The RCB, overall, did a good job of restricting the Sunrisers, but barring Starc, the bowlers looked quite ordinary and it was their good fortune that the likes of Warner, Dhawan and Sammy did not make capital of the offering.
Sunrisers Hyderabad 155 for 6 in 50 overs (Shikhar Dhawan 37, David Warner 61, Mitchell Starc 2 for 21, Varun Aaron 2 for 33) lost to Royal Challengers Bangalore 158 for 6 in 19.5 overs (Chris Gayle 27, AB de Villiers 89 not out, Bhuvneshwar Kumar 2 for 16, Karn Sharma 3 for 17).