KL Rahul scored 91 not out from 57 balls and Harpreet Brar fired with bat and ball in his first game of the season as Punjab Kings beat Royal Challengers Bangalore by 34 runs to prevent their opponents from regaining top spot in the Indian Premier League table.
Rahul's fourth fifty-plus knock of the campaign - during which he overtook Delhi Capitals' Shikhar Dhawan as top run-scorer - lifted Punjab to 179-5 as quickfire stands of 80 from 45 balls with Chris Gayle (46 off 24) and 61 off 32 with Harpreet (25no off 17) sandwiched a middle-overs collapse.
Harpreet - who, along with Rahul, had helped Punjab plunder 47 from their final three overs - then picked up a memorable trio of wickets during RCB's unsuccessful run chase as he removed Virat Kohli (35), Glenn Maxwell (0) and AB de Villiers (3) in the space of seven balls across two overs.
The left-arm spinner, 25, bowled Kohli and Maxwell from successive deliveries in the 11th over and then had De Villiers caught by Rahul at extra-cover in the 13th as RCB sunk from 61-1 to 69-4 amid a larger collapse of 6-34 - Harpreet capping his fine day with a catch in the deep.
Harshal Patel (31 off 13) - who was dismissed late on as Ravi Bishnoi took another spectacular diving catch in the deep having also pouched one against Kolkata Knight Riders earlier this week - and Kyle Jamieson (16no off 11) slammed 48 from 23 balls at the death to take RCB up to 145-8, but Kohli's men were well beaten as they lost for just the second time this term.
RCB would have moved two points clear of Chennai Super Kings and Delhi at the IPL summit had they secured a sixth win in seven but remain in third place, while Punjab are fifth after Rahul, Gayle and Harpreet inspired their third victory of the season.
Rahul's partnership with Gayle had powered Punjab to 99-1 in the 11th over, while his unbroken stand with Harpreet revived the innings after his side had lost four wickets for 19 runs to slip to 118-5 in the 15th.
Punjab skipper Rahul was eyeing the third IPL century of his career when five boundaries in six balls - four fours and a six - left him on 90 with two deliveries remaining in the innings but he was only able to skew the next ball, bowled by the expensive Harshal (0-53), away for a single.
Rahul's disappointment would have quickly dissipated when he saw Harpreet cream the final delivery over deep square leg for another maximum as the innings ended with a flourish.
Rahul, whose innings contained five sixes and seven fours, had earlier fired alongside Gayle - Gayle nailing five boundaries off seamer Jamieson in the sixth over and two sixes off spinner Yuzvendra Chahal in the seventh, while Rahul also tucked into Chahal with a four and six in the ninth.
RCB's Australian seamer Daniel Sams broke the stand by bouncing out Gayle, which triggered a real Punjab wobble, with West Indian Nicholas Pooran suffering a fourth duck in six innings.
Rahul, though, finally found another strong ally in Harpreet with the duo ensuring Harshal, the leading wicket-taker in the tournament with 17, went for 40 from his final two overs, including 22 from the last as he conceded two sixes and as many fours.
The Punjab attack then kept RCB's batsmen in check, with Devdutt Padikkal (7) out early, Kohli only scoring at around a run a ball and Rajat Patidar (31) struggling for rhythm.
Harpreet's burst, which included hitting Maxwell's off stump after spinning a ball from middle, then dramatically rocked the chase and RCB were unable to sufficiently recover.
Punjab will be a little disappointed Harshal and Jamieson collared Chris Jordan and Mohammed Shami late on, while they will be concerned over the fitness of Riley Meredith, who left the field having been smashed on the knee when Jamieson drove a ball fiercely back towards him.
Watch three IPL games on Sky Sports Cricket this weekend. Mumbai Indians vs Chennai Super Kings comes your way from 2.50pm on Saturday, while there is a double header on Sunday with Rajasthan Royals vs Sunrisers Hyderabad at 10.50am followed by Punjab Kings vs Delhi Capitals from 2.50pm.