From Captain Cool losing his, well, cool to Rabada's super over, and Malinga's unbelievable bowling for the cup, IPL 2019 was not short of magical moments. Here are a few.
The 50-day long 2019 Indian Premier League found its champion in Mumbai Indians on Sunday.
The Rohit Sharma-led side squeezed past defending champions Chennai Super Kings by one run to claim the IPL title for the 4th time.
Just like the final, the tournament was not without its share of drama and newsmakers.
Here are some moments that made IPL 2019 memorable...
Buttler 'Mankaded' by Ashwin
When Rajasthan Royals and Kings XI Punjab faced off in their opening match, everyone was looking forward to some fireworks off the bat of 'Universe Boss' Chris Gayle. He gave his fans what they came for, making 79 off 47 to top-score as Punjab set Rajasthan 185 for victory.
But there were more 'fireworks', this time of the controversial kind, that were set to go off.
Rajasthan got off to a superb start thanks to openers Ajinkya Rahane and Joss Buttler. But just when it looked like they were running away with the match, something extraordinary happened.
Buttler and Rahane shared 78 runs in eight overs for the opening stand before the Rajasthan skipper was cleaned up by his Kings XI counterpart Ravichandran Ashwin.
Buttler was going strong with Sanju Samson (30) as the duo batted sensibly to keep Rajasthan in the hunt. But just when it seemed Kings XI were running out of ideas, skipper Ashwin did the unthinkable and Buttler (69 off 43) became the first victim of 'Mankading' in IPL history.
A desperate Ashwin ran out Buttler who, at the non-striker's end started off, in controversial circumstances in the 13th over with Rajasthan scoreboard reading 108 for two.
The dismissal created a furore as Ashwin did not give the Englishman prior warning. As expected, Buttler seemed furious and had a heated exchange with Ashwin before leaving the field after the third umpire ruled him out.
That dismissal proved costly as Rajasthan went on to lose the match by 14 runs after a middle-order collapse.
Kohli slams umpiring after no-ball howler
In that same week, an umpiring howler cost RCB the match against Mumbai Indians that set them on a six-match losing streak.
On the back of some late hitting by Hardik Pandya, Mumbai reached 187 for 8.
The match went down to the wire after Jasprit Bumrah's super death bowling in the 17th and 19th overs.
With AB de Villiers still at the crease, batting on 70 off 41, Lasith Malinga was given the responsibility to get Mumbai over the line. He did so, but was aided by an umpiring howler that cost Bangalore the game.
With RCB needing six to take the game into the Super Over, Lasith Malinga's final delivery to Shivam Dube was a no-ball that was missed by the on-field umpires and Royal Challengers finished with 181 for 5 in reply to 187 for 8 by Mumbai Indians.
AB de Villiers, who nearly took Bangalore to victory with an unbeaten 70 off 41 balls, would have taken the free hit had the umpires called a no-ball off the last delivery of the match.
ICC Elite Panel's Umpire S Ravi bungled big time, not awarding the no-ball, leaving Virat Kohli seething as the video on the big screen replayed the error.
An angry Kohli came down heavily on umpire Ravi.
"We are playing at the IPL level. It's not club level; the umpires should have their eyes open. That was a big no ball. That is a ridiculous call (last ball). If it is a game of margins, I don't know what is happening. They should have been more sharp and careful out there," a livid Kohli said at the post-match presentation ceremony.
Things just got worse from there on as RCB became the first team to be eliminated from the tournament.
MS Dhoni gets into argument with umpire
The moniker 'captain cool' has stuck with Mahendra Singh Dhoni for the longest time. But in a rare show of emotion, the Chennai Super Kings captain made his anger known during an IPL match against Rajasthan Royals.
Chasing 152 for victory, Dhoni put his team in a good position before being dismissed for 58 off 43 balls in the final over of the match.
Following his dismissal, Rajasthan pacer Ben Stokes bowled a high-full toss delivery to Mitchell Santner.
While umpire Ulhas Gandhe was about to signal a no ball, Bruce Oxenford, standing at square leg, said it was a legitimate delivery. Seeing this, Santner, who was at the striker's end, and Ravindra Jadeja got into an argument with the umpires.
A visibly upset Dhoni, who was standing at the dugout, then charged onto the field and got involved in an altercation with the umpires, who refused to change their decision.
He was seen angrily gesturing at the umpire before leg umpire Chris Gaffaney asked Dhoni to leave the field.
Satner eventually hit a six to take his team through but not before some unwanted drama.
Dinesh Karthik loses his cool
When one thinks of Dinesh Karthik, his ever-smiling face is what pops into one's head. So it was a rare sight to find the Kolkata Knight Riders captain give his teammates a piece of his mind during a match in the final stage of the competition.
After getting off to a good start in the competition, KKR lost their way. Questions were asked about leadership, with all-rounder Andre Russell even revealing that all was not well in the KKR set-up.
The Knight Riders slumped to a number of defeats until they were left with a dire need to win against Kings XI Punjab to have a chance to qualify for the play-offs.
During the game, Karthik was seen animatedly shouting instructions to his teammates during a strategic timeout. It was a rare sight, of him losing his cool at his bowlers and fielders for not executing his plans properly.
After the match, Karthik said: "It's been a hard few days. I wasn't too happy with what the bowlers and fielders were doing, so I thought I should let the boys know what I felt at that time. It is rare; not many people have seen me angry.
“If I feel I need to be angry to get the best out of the boys, then maybe," said Karthik, after his team scored a seven-wicket victory over KXIP.
David Warner comes back and how!
Australia's David Warner could not have asked for a better platform to get into the thick of things just before the World Cup.
He, along with Australia teammate Steve Smith, was sidelined from the IPL last year after the ball tampering controversy. And what a comeback did Warner make!
Warner often set up matches for Sunrisers Hyderabad with opening partner Jonny Bairstow.
The burly Aussie scored 692 runs in the tournament and took his team to the playoffs -- they were the first team to qualify for the knockouts despite losing 8 games, with just 12 points.
Hyderabad were eventually eliminated by Delhi in the Eliminator but the tournament will be remembered for Warner's big hitting.
Delhi Capitals make the play-offs after 7 years
Delhi Capitals, led by an impressive 24-year-old in Shreyas Iyer, finished with 18 points from their 14 IPL matches but finished third due to poor net run rate compared to Mumbai Indians and Chennai Super Kings.
Delhi, who took on a new name this season (they were called Delhi Daredevils before), had not made it to the top-four since 2012, so it was good to see the young side take matches down to the wire. Unlike other teams, they were particularly impressive in away matches while struggling to get going at home.
Delhi got its boost from opener Shikhar Dhawan, who scored over 400 runs. They also had Rishabh Pant, whose bat mostly worked like a magic wand with cameos. Bowler Kagiso Rabada was spot on in the death overs to always keep them in the game.
But most importantly, they were well led by Iyer who, despite his youth, showed maturity with the bat and in the field. Delhi were also armoured with a brilliant back-staff in coach Ricky Ponting and Sourav Ganguly. They did well to eliminate Hyderabad but fell short in Qualifier 2, going down to Chennai Super Kings and losing a spot in the final.
Rabada stars in Super Over
South African paceman Kasigo Rabada, that boy with a sweet smile, who gives nothing away especially in the death overs, played a crucial role in Delhi’s progress in the IPL this season.
But he was particularly impressive when the match went to the Super Over against KKR.
Chasing 186 to win, Delhi Capitals were going well until they lost Prihtvi Shaw in the penultimate over. With six needed to win off the last over, Kuldeep Yadav kept it tight as Delhi managed to tie the scores, sending the match in to the Super Over.
Delhi made just 10 runs in the Super Over that was bowled by Kolkata’s Krishna Prasidh.
Rabada was given the task to defend those runs and he did so with precision.
He bowled dangerous Andre Russell with a perfect yorker and did not allow other batsmen, including captain Dinesh Karthik, to free their arms.
Eventually KKR needed five off the final ball but managed just one and Rabada was once again Delhi’s hero.
Gopal's hat-trick against RCB
The ever-improving Rajasthan Royals’ spinner Shreyas Gopal came good, taking a hat-trick in a rain-affected match to knock out Royal Challengers Bangalore.
Gopal took a memorable hat-trick in a rain-curtailed five-overs-a-side contest against Royal Challengers Bangalore that was eventually called off due to intermittent showers, at the M Chinnaswamy Stadium, in Bengaluru.
Royals won the toss and opted to field, but rain returned to delay the start of the game by three hours and 30 minutes.
Royal Challengers Bangalore skipper Virat Kohli (25 off 7) was on fire from ball one and was joined by AB de Villiers (10 off 4) as they tore down Varun Aaron and the first over went for 23 runs.
However, Gopal brought Royals right back into the game in the next over by removing Kohli and de Villiers off successive deliveries before sending back Marcus Stoinis for a memorable hat-trick.
RCB eventually made 62 runs in the five overs but intermittent rain played spoilsport.
Needing 22 off the last 10 deliveries, the Royals looked set to pocket two points, but rain lashed the Chinnaswamy again and both teams had to settle for a point each.
Malinga's last ball dismissal to lift MI to IPL victory
Mumbai Indians were rescued by their bowlers after posting a below-par score in the IPL final.
Having posted a modest 149-8, Mumbai found themselves on the brink of defeat but Lasith Malinga conceded just seven runs off the final over to seal Mumbai’s fourth IPL title.
CSK needed nine runs off the last over but the experienced Lankan paceman kept his nerve to concede only eight runs.
He trapped Shardul Thakur leg before off the last ball, after Shane Watson (80 off 59) got run out two balls earlier, to make Mumbai the most successful franchise with 4 IPL titles.
WATCH: Rohit's victory rap to celebrate IPL win
IPL 12: Best of the Best
IPL 12 Rewind!
After IPL triumph, Pandya wants to win World Cup