Jos Buttler made his fifth consecutive IPL fifty - a feat previously managed only by Virender Sehwag - and Rajasthan Royals picked up their third consecutive win to rise to fifth place on the table, only a week after being on the verge of elimination.
Buttler's unbeaten 94 was much more free-flowing than some of his other recent fifties and cast away any possibilities of a stumble through the middle - the win was achieved with two overs to spare.
Earlier in the evening, Mumbai Indians had thrown away the advantage that openers Evin Lewis and Suryakumar Yadav had provided them with an 87-run stand in 64 balls, collapsing dramatically through the middle overs to make fewer runs in the second half of the innings than the first.
Jofra Archer and Ben Stokes shared the spoils as Mumbai finished with a sub-par 168 for 6 that put no real pressure on Royals during the chase.
The result also meant Chennai Super Kings became the second team to confirm a spot in the playoffs.
Mumbai keep the spinners away
K Gowtham has generally been used in three-over spells by Rahane this season, and is almost a certainty with the new ball when the opponents have a left-hand opening batsman. Before Sunday, he'd taken five wickets at 6.88 during the Powerplay.
But Suryakumar didn't allow him to bowl at Lewis in the first over, getting two boundaries off him before allowing Lewis to face the last ball.Lewis then drilled the first legal delivery he faced past extra-cover to give Mumbai 14 off the first over.
Gowtham only returned in the 12th over, when there were two left-handers at the crease. Lewis punished him off the last ball of that over as well, taking him for a six. He wouldn't get a third over.
Rajasthan Royals had been forced to drop their best bowler, Ish Sodhi, in their last two games since he had fallen ill. Sodhi and Gowtham had been vital to Royals' attack, but with Gowtham neutralised early and replacement legspinner Shreyas Gopal getting a clear signal of Lewis' destructive intent in his second over, which went for 17, Mumbai made sure only four overs of spin were bowled on the evening.
The seamers deliver
Lewis and Suryakumar stuck to Mumbai's template of relying on wickets in hand at the end: they were brisk, but not destructive. They kept the run rate above eight an over in the first ten, despite four overs going for six or fewer.
However, a combination of strong bowling plans and loose shots allowed Royals to come back, beginning with two wickets off two balls from Archer in the 11th over - Suryakumar for 38 and Rohit Sharma for a golden duck. Both batsmen fell to short balls, and that seemed to be Royals' plan, along with taking the pace off, for everyone but Lewis.
To him, Royals' seamers went full and wide outside off, right from the start. Lewis was in no trouble, picking up boundaries in all directions on the off side. It was a full and wide ball, however, that he ended up flaying straight to sweeper cover in the 14th over. At 108 for 3, Mumbai still had plenty of big hitters, but the offcutter accounted for Ishan Kishan and Krunal Pandya.
Hardik Pandya made a valuable 36 off 21 in this context, but Mumbai only made 82 in their last ten overs.
No fuss for Royals
It was fitting that Royals' most difficult moments in the chase came around when D'Arcy Short was at the crease. The opener has now made 116 runs in seven innings this season, at an average of 16.42 and a strike rate of 116.16.
On Sunday, his innings began with an inside edge against a Bumrah inswinger he knew little about, and ended four pokes later with an outside edge. Still, that first over yielded 13 runs.
Buttler's preference to blaze away in the Powerplay was put on hold by a good bowling line-up - although he managed to hit Krunal for a six and a four in the fifth over - but he rarely seemed fussed as he went about building a steady partnership with Rahane for the second wicket.
Despite more solidity in the middle order than in their previous two games, Royals were content with taking it as deep as possible with their top order.
And, on this occasion, it worked. The 95-run second-wicket stand saw them through till the 13th over. When Rahane fell, the required rate was just above nine.
Then, Buttler and Sanju Samson went berserk. Having been unable to take it deep on previous occasions, they made merry in chopping down the required runs in no time.
It began with Buttler slogging Hardik for six a ball after Rahane had been dismissed and following up with a drill down the ground, over his partner's head, to immediately pull the momentum back.
He repeated this in the next over against Bumrah. And before Mumbai knew it, Buttler had moved from 55 to 94 in 15 balls. Before they knew it, they had conceded 14, 14, 12, 9 and 18 from the 13th over to the 18th and allowed Royals to climb above them on the table.