Sams successfully defended eight in the final over to hand Mumbai victory after Tim David, Ishan Kishan and Rohit Sharma had helped post a competitive total in the first innings.
Mumbai: Mumbai Indians 177-6, Gujarat Titans 172-5 - Mumbai Indians won by five runs
Mumbai Indians might be all but out of this year's Indian Premier League, but they appear to be refusing to go down without a fight.
Having lost their first eight matches of the season, the famous franchise have now won two in a row after this pulsating encounter with top-of-the-table Gujarat Titans.
Daniel Sams kept his nerve at the death, successfully defending eight in the final over despite Gujarat having six wickets to spend, to hand Mumbai victory after Tim David, Ishan Kishan and Rohit Sharma had helped post a competitive total in the first innings.
Rohit and Kishan put on 74 for the first wicket in 7.3 overs to set the tone, with the captain making 43 from 28 balls and his young partner 45 from 29.

Daniel Sams celebrates victory over Gujarat Titans [screengrab/BCCI]
The start began to stagnate through the middle of the innings, as Rashid Khan claimed 2 for 24 from four miserly overs, but David ensured Mumbai posted a challenging score.
David smacked 44 in 21 balls, with four sixes, as Mumbai added 58 in the final 5.1 overs, following the dismissal of Kieron Pollard.
In reply, Gujarat appeared to be cruising as Wriddhiman Saha and Shubman Gill posted a first-wicket stand worth 106 in 12.1 overs. But when both openers fell in the same Murugan Ashwin over, the momentum started to shift.
Pollard made an importan contribution with the ball, with two overs costing just 13 runs and bringing the hit wicket dismissal of Sai Sudharsan, while Sams did not pick up a wicket but only went for 18 in his three overs.
Mumbai still need a miraculous set of circumstances to occur to avoid very early elimination, and the campaign remains a massive disappointment, but the franchise can at least take heart from a refusal to roll over after their nightmarish start.