The Royals mustered just 130-9 in their 20 overs, Australia fast bowler Mitchell Starc taking 3-22, and after the departure of Chris Gayle, Kohli (62no off 46) and De Villiers (47no off 34) got their team home with 23 balls to spare.
It was only their second win in five matches, but the Challengers were utterly dominant throughout.
Ajinkya Rahane (18) and Shane Watson (26) gave the Royals a decent start, putting on 36 for the first wicket.
But Harshal Patel (2-23) trapped Rahane plum in front, and Watson holed out off spinner Yuzvendra Chahal, Starc taking the catch.
The middle order collapsed, and it was left to Steven Smith to give his team something to bowl at.
He had made 31 and looked well set, but Starc returned to the attack and dismissed him with the first ball of his second two-over spell. ??
Smith tried to smack him out of the ground, but skied it a long way up in the air, Karthik taking a nerveless catch.
Four balls later, India all-rounder Stuart Binny (20) holed out to deep extra cover.
The dangerous James Faulkner (4) was dismissed thanks to a brilliant one-handed diving catch by keeper Dinesh Karthik off Patel.
And Starc took his third wicket by sending Dhawal Kulkarni???s off-stump cartwheeling.
Chris Gayle and Kohli put on 36 in just over four overs before the West Indies opener edged Watson???s slow bouncer behind.
Kohli and De Villiers then tucked into some average bowling, the India star hitting three sixes. De Villiers did not need to try and hit the ball out of the ground ??? he stroked six fours but no maximums ??? as the Challengers eased home.