AB de Villiers rolled back the years with his beautiful yet brutal assault as Royal Challengers Bangalore (RCB) pipped defending champions Mumbai Indians (MI) by two wickets in a last-ball thriller in the Indian Premier League (IPL) opener in Chennai on Friday. De Villiers smashed 48 off 27 balls after RCB were down in the dumps at 106 for 5. Harshal Patel capped off his dream day by scraping a single off the final delivery to reach the target of 160 in 20 overs. Haryana's Harshal, an eternal peripheral presence in the IPL, finally had his night under the lights with 5 for 27, which helped RCB restrict MI to 159 for nine. MI again lost the first match as has been the tradition in the IPL but they lost it to de Villiers, who changed the script in a space of two overs by attacking the two MI spinners Rahul Chahar (0/43) and Krunal Pandya (1/25). His attack prompted Rohit Sharma to finish his best bowler Jasprit Bumrah's spell (2/26 in 4 overs) before the final over, from which seven runs were required. RCB were in control when Glenn Maxwell (39 off 28 balls) came in and upset leg-spinner Chahar's line with a reverse-pull boundary. He repeated the shot off the same bowler for a six and got another maximum off Krunal Pandya over long-on. Skipper Virat Kohli (33 off 29 balls), who had launched into an experienced Marco Jansen in his first over, got a bit bogged down as the innings progressed. However, Maxwell's attack meant that Kohli could take his time. It was MI's strike bowler Bumrah, who came back for his second spell at the back-10 and removed the Indian captain with an angular delivery. If that wasn't enough, Jansen, the 6 feet 8 inch youngster, banged one short that ended Maxwell's potentially dangerous innings as the 'Big Show' once again promised a lot but delivered little. After Jansen removed Shahbaz Ahmed, de Villiers announced his arrival with a six and a boundary off Chahar. Earlier, Harshal produced a death over masterclass, which kept the MI total under check. He picked up three wickets in his final over for a run and also became the first bowler to pick up a five-wicket haul against Mumbai Indians. Reserve opener Chris Lynn (49 off 35 balls) partially made amends for his part in a horrible mix-up that led to skipper Rohit Sharma's (19 off 15 balls) run-out, by adding 70 runs in seven overs for second wicket with Suryakumar Yadav (31 off 23 balls). That stand was the platform that MI needed to fire during the back-end. Fresh from his exploits for India, Ishan Kishan blazed his way to 28 off 19 balls but Harshal got a few wickets in the final over to prevent MI from inflicting bigger damage. On a Chepauk track where a good score is anything in the region of 150, the total was certainly par for the course. Kyle Jamieson (1/27 in 4 overs) had an impressive IPL debut with his disconcerting bounce but the seasoned Yuzvendra Chahal (0/41 in 4 overs) has clearly lost his bearings for some time now. But Harshal, Chahal's Haryana teammate made it up with some accurate wicket-to-wicket bowling in the 18th and 20th over. Lynn, who looked shaky during the first few overs, stepped out to loft Chahal for a six over long-on and another over wide of long-on off left arm spinner Shahbaz Ahmed to get his rhythm back. This was after he called Rohit for a non-existent single and then sent him back, only to find the skipper yards short of his ground. Suryakumar (31 off 23 balls), at the other end, took off from where he left against England as he clipped Jamieson for a boundary, punched Chahal through covers off the back foot and then back-cut Dan Christian for another four. The pitch that looked slow during the first four overs went out of the equation as runs came at a fair clip.