Chasing a moderate target of 153 runs, Mumbai were off to a good start before some excellent bowling by young pacer Basil Thampi and excellent fielding by Gujarat saw then lose six wickets in the last four overs to leave the scores tied.
Kieron Pollard gave Mumbai a promising start in the Super Over, hitting James Faulkner for a boundary to long-off and a six over long-on off consecutive balls.
But he hit the very next ball into the hands of the fielder at the long-on boundary.
Jos Buttler also fell when he skied an attempted big hit and Mumbai were restricted to 11 runs.
It seemed that the hosts will pull off the win as Bumrah had a poor start to the Super Over.
Bumrah conceded a no-ball in the first ball but prevented Brendon McCullum from making use of the free hit with a good delivery even as the Kiwi star mistimed his shot.
The next ball was wide but Bumrah made a comeback with another good delivery that was dot ball. The next ball was full and slightly outside the off-stump. McCumllum was unable to connect but ran a bye even as the ball travelled to the wicket-keeper.
Bumrah then produced another couple of excellent deliveries to leave Gujarat needing seven runs off the last ball.
The last ball only produced a single as the host fell six runs short of the target.
Earlier, Mumbai were handed a superb start by in-form opener Parthiv Patel.
Patel plundered 70 runs off 44 balls, hitting nine boundaries and a six along the way.
An extra bit of bounce from James Faulkner saw him being caught behind but Mumbai were comfortably placed at 123/4 after 16 overs.
Needing only 31 runs off the last four overs, the visitors were seemingly cruising home to a comfortable win.
But Thampi helped Gujarat stage a late comeback by taking three wickets in his last two overs.
Kieron Pollard looked promising during his brief stay in the middle, but poor timing while attempting to smash a Thampi delivery into the stands did him in as he could only manage to pick out McCullum at the long-on boundary.
Krunal Pandya got a reprieve in the next over when Gujarat skipper Suresh Raina dropped him at midwicket. Krunal celebrated by smashing the last ball of the over for a boundary.
But the visitors could not make use of the chance as Hardik Pandya fell off the first ball of the next over.
Looking to hit Thampi over the onside, Hardik miscued his shot as Ishan Kishan claimed a relatively easy catch at deep midwicket.
Mumbai suffered another jolt off the fifth ball of the over when Thampi trapped Harbhajan Singh leg before.
The over had another setback in store for the visitors as Mitchell McClenaghan was run out thanks Irfan Pathan who did well to stop a boundary before coming up with an excellent throw that directly hit the stumps.
That seemed shift the momentum decisively in favour of the hosts with Mumbai needing 11 runs off the last over.
But Krunal turned things around by hitting Pathan for a six off the first ball of the 20th over.
But Gujarat were not ready to gie up just yet. Ravindra Jadeja was the man of the moment for the hosts effecting two run outs in the space four balls with his accurate throws.
He pulled the hosts back into the game with a direct hit that sent Bumrah back to the pavilion.
The excitement lasted till the last ball.
Needing one run off one ball, Lasith Malinga attempted to flick an inswinging Ayorker Abut missed. The ball hit the pads and travelled to Jadeja at point even as the bowler appealed for an lbw.
Jadeja pulled off another direct hit to run out Krunal who was caught short of the crease despite a desperate dive.
That pushed the issue into the Super Over.
Thanpi was the most successful among the Gujarat bowlers with figures of 3/29 in his four overs.
Fellow pacer Faulkner returned 2/34.
Earlier, Gujarat Lions recovered from a top-order batting collapse to post 153/9 in their 20 overs.
At the top of the batting order, Gujarat only had young opener Ishan Kishan (48 off 35 deliveries) to thank while others perished without troubling the scorers. But Ravindra Jadeja (28), Andrew Tye (25) and James Faulkner (21) provided some late resistance to lift the hosts to 153/9.
Sri Lankan pace spearhead Lasith Malinga led the charge for Mumbai as he clean bowled Brendon McCullum (6) and Aaron Finch (0) in his opening spell. Fellow pacer Jasprit Bumrah too responded as he got rid of Suresh Raina (1) when the left-hander chipped one to Kieran Pollard at mid-off.
When left-arm spinner Krunal Pandya had Dinesh Karthik (2) stumped by Parthiv Patel, Gujarat were struggling at 56/4 in 8.1 overs.
All this while, Ishan was impressing one and all with his dynamic stroke-making. He braved against a veteran like Malinga, hammering the Lankan for two fours and a six over midwicket in the second over.
The following over bowled by Mitchell McClanaghan saw Ishan repeat the treatment given to Malinga. Off-spinner Harbhajan Singh too was milked for two fours in the fourth over as the 19-year-old sparkled. Out of the 46 runs Gujarat scored after fours overs, Ishan contributed 36.
However, the haul of wickets and the disciplined bowling from Mumbai pressurised him and he succumbed, being holed out by Kieran Pollard at long-off in the first ball of the 12th over, with Gujarat at 83/5. His 48 included six fours and two sixes.
Two overs later, all-rounder Ravindra Jadeja (28 off 21) too perished, giving a return catch to bowler Krunal. The spinner than removed Irfan Pathan (2), who was playing his match of the edition.