Skipper Kohli, who has been fastest to reach 500 runs in an IPL season, was out for 20 as it was De Villiers' late surge that saw RCB's total gain momentum on a track which was getting slower with passage of time.
De Villiers' innings had five boundaries and two sixes off Sandeep Sharma.
The sixes included a sweep shot and a pull over mid-wicket off Sandeep while he also played another audacious sweep shot off KXIP's best bowler Mohit Sharma for a boundary.
Once he reached his half-century off 30 balls, De Villiers' started hammering the bowlers with great disdain. In the 18th over bowled by a hapless military medium bowler Sandeep, he got a six and four but while trying to dig a full delivery gave a regulation catch to KC Cariappa at cover.
More From This Section
De Villiers found an able ally in Kerala left-hander Sachin Baby (33, 29 balls) as the duo added 88 runs in 9.1 overs for the fourth wicket after RCB were reduced to 67 for 3 due to a mini-collapse.
Rahul after having hit six delightful boundaries and a six, was bowled round his legs trying to play sweep shot. A ball later, he had prized scalp of Kohli, who gave a simple catch to his opposite number Murali Vijay at short cover.
From 63/2, it soon became 67 for three when Shane Watson (1) missed a slow half-tracker from Axar Patel to be clean bowled.