Asked to open the batting, Tiwary stood up to his captain's call and held together RCB's innings with a fine half-century that came off 45 balls and was studded with two fours and as many sixes.
But it took a brilliant improvised innings from De Villiers towards the rear phase of the innings to steal the limelight from Tiwary.
The South African took the Pune bowlers for a leatherhunt and scered his 50 off just 23 balls with the help of six boundaries and two sixes to take RCB past the 180-run mark which at one stage looked bleak.
In Moises Henriques (27 off 13), De Villiers found an able partner. The duo smacked took the Pune bowlers for a task and shared unbeaten 68 runs for the fourth wicket in just 4.5 overs.
De Villeiers showed great improvisation and scored a whopping 26 runs off Ashok Dinda in the final over to finish off RCB's innings in style.
Poor Dinda came under De Villiers' wrath as he hit the ordinary-looking pacer for 6,4,6,4,4 and two runs in the final over of the innings.
However, opting to bat, RCB did not have the best of starts as Chris Gayle and Tiwary found the going tough against Pune's disciplined opening attack.
Gayle, who scored a majestic beaten 175 against the same opponent in the last meeting between both the sides, looked a pale shadow of himself as he managed just 21 off 21 deliveries before being caught by Bhuveneshwar Kumar off Tirumalasetti Suman.
Skipper Virat Kohli played a 18-ball 25-run cameo and together with Tiwary added 63 runs for the second wicket off just 39 balls to give the much-needed impetus to RCB's innings.
Pune skipper Aaron Finch's decision to introduce Yuvraj Singh in the 11th over backfired as Kohli smashed three fours to pick up 15 runs off the part-time left-arm spinner's opening over.
Just when he was looking dangerous, Kohli was castled by by Dinda in the 13th over.
Tiwary, however, went about his business in quite fashion and notched up his half-century in 42 balls before Dinda cut short his stay.
After doing all the hard work, Tiwary gave away his wicket, caught by Rahul Sharma at short fine-leg off Dinda.
But De Villiers and Henriques used their long handles to good effect as Pune bowlers bleed 68 runs in the final five overs.