In the first innings, Mumbai managed 176 for 7 after being put into bat.
Quinton de Kock with a 39-ball-60 created a platform which the middle-order, unfortunately, didn't make full use of before Hardik smashed 31 off 19 balls to enable Mumbai to get past the 175-run mark.
For the home team, it was the lesser-known Ashwin -- Murugan, who emerged as the most successful bowler with figures of 2 for 25 from his four overs.
Skipper Ravichandran Ashwin didn't get any wickets but gave away only 26 runs in his four overs.
The pace troika of Shami (2/40 in 4 overs), Andrew Tye (1/40 in 4 overs) and Hardus Viljoen (2/40 in 4 overs) were among wickets but bowled a lot of loose deliveries, giving away 13 fours and three sixes.
This was Punjab's second win in three games while Mumbai lost their second game.