With 41 to get in four overs, and with two overs of Jasprit Bumrah left and AB de Villiers at the crease, it was clearly going to be a battle between those two giants. Essentially, de Villiers needed to undo all the damage in the 18th and 20th that Bumrah was likely to do in the 17th and 19th. As it turned out, Bumrah outdid de Villiers, and Mumbai Indians scraped past Royal Challengers Bangalore.

Bumrah's Smart Stats numbers show just how outstanding he was today. His conventional bowling figures were 3 for 20 in four overs, but according to his smart bowling figures, he conceded just two runs and took 3.4 wickets.

That is because Bumrah bowled the really tough overs - the 17th and the 19th - and conceded just six runs (including a leg bye) in those overs. And that was despite a harsh wide call in the 19th. Of those 12 balls, he bowled four to de Villiers, and conceded just two runs off those four balls. Bumrah's smart runs conceded takes into account the pressure the team was under when he bowled those overs, and the quality of the batsmen he bowled to.

In fact, the win probabilities for Royal Challengers in the last four overs clearly illustrates Bumrah's impact on the game. After the 16th over, which went for 20, their win probability had soared to 59%. From there, it plummeted to 26% as Bumrah conceded one run and dismissed Shimron Hetmeyer in the 17th. De Villiers lifted the win probability back up to 58% after the 18th, taking 18 runs off Hardik Pandya. Bumrah, though, brought it back down to 14% after a brilliant 19th, which went for only five.

Felt like Stuart Broad after Yuvraj hit me for three sixes - Chahal
Felt like Stuart Broad after Yuvraj hit me for three sixes - Chahal

The drop that almost cost Mumbai Indians

You don't drop AB de Villiers. Especially before he's played himself in. Actually, there's never a good time to drop him. He will make it count more often than not. And that's what happened in this game. Well, almost.

According to ESPNcricinfo's Luck Index, which puts a quantitative value on every lucky event in a game, de Villiers' drop cost Mumbai Indians 19 runs. The Luck Index algorithm estimates that the other Royal Challenger's Bangalore batsmen to follow de Villiers would've scored 51 runs off the 40 balls that he faced after getting dropped.

The impact of the drop by Yuvraj Singh would've been much larger had de Villiers not ran into Bumrah and Lasith Malinga in the final two overs. He could manage only three runs off the five balls that he faced in the last two overs of the chase. De Villiers' innings was still worth its weight in gold: As per ESPNcricinfo's Smart Stats, de Villiers' 70 were worth 85 smart runs, at a smart strike rate of 207.

The no-ball drama

How many runs would AB de Villiers have scored off the Free Hit that should have happened had S Ravi spotted that Lasith Malinga had overstepped off the final ball? Luck Index shows that the average runs gained off a no-ball is 3.15 (one run for the no-ball and 2.15 off the Free Hit). That is based on the historical average runs scored off all Free Hits in the last three years.

In the IPL, chances of a batsman hitting a free-hit ball for a six, or hitting the last ball of a chase with at least five required to tie or win is only about one in 13. But de Villiers obviously isn't your average batsman, so what about his stats? His Free Hit numbers in all T20 cricket are as follows: in 10 Free Hits that he has faced (in matches for which ESPNcricinfo has ball-by-ball data), de Villiers has scored 28 runs. That includes three sixes and a four, but also six singles. That suggests a 30% chance of a six, which is what Royal Challengers would have needed to win. Also, in seven previous balls from Malinga in the match, de Villiers had hit three sixes, though in the final over itself he only managed two singles from two balls.

Clearly, the game could have gone either way, but Ravi's error denied de Villiers the opportunity to even attempt the last-ball glory.