Pune — Riyan Parag's unbeaten 56 and inspired bowling helped Rajasthan Royals defend 144 against Royal Challengers Bangalore to go top of the IPL table on Tuesday.
The 20-year-old Parag smashed 30 off the last two overs to steer Royals to a competitive total before pace bowler Kuldeep Sen took 4-20 to complete a 29-run victory in Pune.
Ravichandran Ashwin returned figures of 3-17 after Sen dismissed skipper Faf du Plessis (23) and Glenn Maxwell (0) in successive deliveries to put Bangalore in trouble at 37-3.
Ashwin rattled the middle order with his off-spin and a dramatic run out of Dinesh Karthik, who departed for six after a mix-up with Shahbaz Ahmed, took the wheels off the chase.
Sen returned to wrap up the Bangalore innings as they were bowled out for 115 in 19.3 overs.
"The top order is a trick we need to fix," Du Plessis said after his team's second straight loss and batting failure following their 68 all out last week in the Indian Premier League.
"You need someone in the top four to bat through and we haven't done that consistently. We tried changing the batting lineup today and we feel that they can try playing positively. Can't go into a shell."
A struggling Virat Kohli opened the innings for Bangalore and avoided a third straight golden duck but nearly got caught on the third delivery, with the ball falling short of the fielder at square leg.
Kohli, who has scored just 128 runs in nine matches, got off the mark on the fourth ball with a boundary and survived a few inside edges that missed the stumps but finally fell to Prasidh Krishna in the next over, for nine.
Earlier, Bangalore's Josh Hazlewood removed the in-form Jos Buttler for eight to push Royals on the back foot after fellow quick Mohammed Siraj struck twice in his opening two overs.
Buttler, who has hit three centuries this IPL season and is the leading batter with 499 runs, mistimed a pull to mid-on where Siraj took a stunning catch.
Skipper Sanju Smason attempted to hit back in his 21-ball 27 but was bowled by Sri Lankan leg-spinner Wanindu Hasaranga.
Hazlewood took 2-19 as Bangalore dried up the runs for Royals between overs 10 to 18, but Parag cut loose and survived a dropped catch on 32 to set up the team's sixth win of the season in eight matches.