Leg spinners Piyush Chawla and Ravi Bishnoi excelled with the ball at the Wankhede stadium.
Lucknow Super Giants were superior with both bat and ball as they consigned Mumbai Indians to the bottom of the table with their 10th defeat of the season.
Despite Chawla and Nuwan Thushara's three wicket spells, LSG raked up a huge 214/6 before Ravi Bishnoi derailed MI's run chase with a two wicket haul.
A look at the best spells of the match...
Ravi Bishnoi
Bishnoi came up with a crucial spell to derail Mumbai Indians' run chase.
He was smashed for a couple of fours by Rohit Sharma in his first over but he bounced back to dismiss the MI opener in his second over.
Rohit had smashed his way to a brilliant 68 from 38 balls before he was deceived by Bishnoi's guile. He attempted to drive the full wide delivery from Bishnoi which turned enough to beat Rohit as the ball went off the outside edge and was taken by the fielder at short third man.
Rohit's wicket proved to be a big blow for MI's hopes.
In his fourth and final over, Bishnoi dismissed Nehal Wadhera, who holed out to Krunal Pandya at long on. Conceding just six runs in the 15th over, Bishnoi finished as LSG's most successful bowler with figures of 2/37.
Krunal Pandya
Krunal was everywhere on the field for LSG.
Apart from taking some sharp catches and making some incredible saves on the boundary, Krunal did his bit with the ball too.
The left-arm spinner was called up to bowl quite early in the Powerplay and did well to concede just eight runs in the fourth over, despite getting hit for a six by Dewald Brevis.
He claimed the most important wicket of the evening when he got Suryakumar Yadav caught at deep square leg for a three-ball duck, in his second over in which he conceded just four runs.
Up against his younger brother Hardik, Krunal didn't let his guard down. He nearly had Hardik caught off the leading edge as he gave away just three singles in his third over.
He was hit for a four and a six by Naman Dhir in the 17th over but still managed impressive returns of 1/29 from his four overs.
Piyush Chawla
Piyush Chawla turned back the clock with a masterful display of spin bowling, derailing LSG's batting momentum in a crucial phase. His economical spell of 3/29 was a lone bright spot for the Mumbai bowling attack.
Chawla's magic began early, bamboozling the dangerous Marcus Stoinis. A well flighted googly had Stoinis missing the sweep completely, leaving him plumb in front. The umpire's finger went up, and Stoinis' promising knock of 28(22) was cut short.
He wasn't a one-trick pony. Later, Chawla outfoxed Deepak Hooda with his variations. His tossed up ball outside off deceived Hooda, who sliced it for a well taken catch at backward point.
The highlight of Chawla's spell came in the 18th over. He tempted the well-set Rahul with a tossed up, full ball on the stumps. Rahul, looking to get the boundaries, attempted to sweep but only managed a top edge that found the fielder stationed perfectly at short fine leg. This dismissal put a sudden halt to Lucknow's dominance.
In a match where Mumbai's bowling faltered, Chawla stood tall. His exceptional control, combined with his ability to pick up crucial wickets at key junctures, showed Chawla still has in him to succeed at the top level.
Nuwan Thushara
Nuwan Thushara emerged as a thorn in Lucknow's side, dismantling their batting order at crucial junctures. His three wicket haul for just 28 runs showcased his swing bowling prowess and ability to strike at crucial junctures.
In Jasprit Bumrah's absence, the onus was on Thushara to deliver with the new ball and he certainly didn't disappoint.
The Sri Lankan pacer made an immediate impact. In the very first over, he sent Devdutt Padikkal packing for a golden duck. A full inswinging delivery found Padikkal plumb in front, with the review confirming three reds on ball-tracking. This early dismissal rattled LSG's batting plans.
Later, in the 17th over, Thushara unleashed a double blow in two balls. First, he deceived the dangerous Nicholas Pooran with a full and wide delivery. Pooran went across a long way to fetch the ball for his cross-batted loft but couldn't generate enough power as he found Suryakumar Yadav perfectly stationed at long on, who took a superb overhead catch on the edge of the boundary.
This ended Pooran's explosive knock.
Thushara wasn't done. With the very next ball, he dismissed Arshad Khan. The left-hander swung hard but could only manage a toe-end shot, which Nehal Wadhera nearly spilled at cover.
The ball popped out, but Wadhera recovered to grab the catch on the second attempt, giving Thushara a well deserved wicket.
LSG Vs MI: Who Bowled The Best Spell? Vote!
Photographs: BCCI
What's next for Rohit, 'master of his own destiny'?
Rohit Signs Off In Style!
No excuses: Hardik says MI deserved last place finish
Hardik and Mumbai Indians' problems continue to grow