Defending 118 - their second-lowest total in IPL history - a depleted Sunrisers Hyderabad attack systematically dismantled Mumbai Indians for 87 at the Wankhede Stadium, to hand the hosts their fifth loss in six games.
Sunrisers' win was also the second-lowest total successfully defended in the IPL, and only the third time all 20 wickets had fallen in the tournament's 11-season history. Mumbai's 87 was their lowest ever IPL score.
Legspinner Rashid Khan's 2 for 11 - a spell that included 16 dot balls, six of which comprised a maiden over - stifled Mumbai's chase in the middle, after which their Indian fast bowlers - Siddarth Kaul and Basil Thampi - ran through the hosts' lower order.
What made Sunrisers' bowling effort all the more remarkable was the absence of the injured Bhuvneshwar Kumar and Billy Stanlake from their XI.
McClenaghan, Markande trip up Sunrisers
Sunrisers openers Kane Williamson and Shikhar Dhawan lasted together for just nine deliveries, before Mitchell McClenaghan's double strike in the space of three deliveries rattled them.
Manish Pandey, who looked his stylish self for his brief stay, slapped one to cover for a 11-ball 16, while a mix-up between Shakib Al Hasan and Williamson sent the Bangladesh all-rounder back.
Williamson himself, who struck five fours in his 21-ball 29, then inside-edged one to the keeper.This led Sunrisers to a mess at 63 for 5.
Yusuf Pathan and Mohammad Nabi's small partnership forced Rohit Sharma to introduce legspinner Mayank Markande, and he struck immediately.
Nabi's ungainly heave to a googly left the stumps rattled. The 20-year old followed that up with a legbreak that went under Basil Thampi's attempted cut.
With Hardik Pandya, Jasprit Bumrah and Mustafizur Rahman operating at the death, Sunrisers were bowled out for 118 in the 19th over.
Mumbai's slow, wobbly start
Evin Lewis and Suryakumar Yadav had the liberty to go slow as the required rate was under six. But Sandeep Sharma, playing in only his second game this season, had other ideas.
He triggered a collapse by removing Lewis through an inswinger that took the leading edge to cover. Ishan Kishan, who had a rough day behind the stumps, soon collected his second duck in three games when he stepped out and mistimed a loft to long off.
Then it was Rohit Sharma's turn, an expansive drive was superbly taken by Dhawan at slip. Mumbai finished the Powerplay at 22 for 3, the season's slowest so far, but were still favourites because of their batting depth.
Rashid breaks Mumbai's back
Krunal Pandya's 40-run fourth-wicket partnership with Suryakumar kept Mumbai in the hunt. It appeared as if the duo had repaired the damage.
Then Rashid came, and did what he does. He trapped Krunal with a slider that was overturned on review. Then Kieron Pollard succumbed to Rashid's dot-ball pressure.
After biffing a huge six off Shakib Al Hasan, he fell to a tame guide into the hands of Dhawan at slip. Within two overs, Rashid had managed to break into the lower order. He completed his spell with a maiden, by which time Sunrisers had more than just a sniff.
Basil Thampi, introduced in only the 15th over of the chase, struck in his fifth ball to remove Suryakumar. For the longest time, his 38-ball 34 seemed to be a match-winning performance, but Suryakumar's choice of whipping a full ball towards the leg side found Rashid at the boundary.
Hardik Pandya was still at the crease, and therefore, Mumbai - even six down - were not out yet with five overs to go. But Siddarth Kaul's second spell was fierce, and he knocked over McClenaghan and Markande with pace, and then followed it up with the wicket of Hardik, who sliced a catch to third man for a painstaking 19-ball three. Now, Mumbai were 81 for 9, all but gone, and the final nail was hammered when Thampi had Mustafizur mistime a pull to midwicket in the 19th over.