MI wavered with the bat initially, but an exceptional 101 not out off 45 balls by Tilak Varma propelled them to a proper total, before Ashwani Kumar starred with the ball, grabbing 4/24.
GT would have been annoyed at chasing 199/5 after having restricted MI to 103/4 at the start of the 15th over. But undoubtedly, they would have been even more frustrated with their batting performance.
The chase never got off the ground. Jasprit Bumrah found the outside edge of Sai Sudharshan's bat with the first delivery of the innings, then captain Hardik Pandya got one to swing prodigiously and dismiss Jos Buttler lbw in the second over.
Even the in-form captain Shubman Gill couldn't get out of second gear, perishing for 14, the first of Kumar's four victims. Washington Sundar top-scored with 26, with twin Mitch Santer strikes dismissing him and Glenn Phillips, leaving GT 55/5.
Kumar then returned for his second spell and bagged three wickets in just seven balls of his left-arm medium, effectively ending the contest.
Earlier, three strikes from Rabada stunted MI's innings. First, the Proteas seamer trapped Danish Malewar in front for just two, then caught fellow South African Quinton de Kock off his own bowling in his next over.
Rabada had MI in trouble at 44/3 in the sixth when he dismissed dangerman Suryakumar Yadav with an absolute ripper, finding the gap between bat and pad to crash into the stumps at 152 kph.
That brought Tilak Varma to the crease, and that's where the problems started for GT. Varma took his time when partnering the set batter Naman Dhir, but when the latter was dismissed, he launched.
Varma contributed a sizzling 64 runs off 22 balls of the 81-run partnership before Pandya was dismissed, then crunched 21 off his next five to take MI to a formidable 199/5, earning himself an unbeaten century in the process.