Opting to bat first after winning the toss, Mumbai plunged into deep trouble within the first half hour by losing openers Vinayak Mane and Wasim Jaffer cheaply to Punjab medium pacer Gagandeep Singh to be 23 for two.
Later, they slumped to 92 for five in the first session, with Gagandeep and fellow medium-pacers Vikram Singh and Reetinder Singh Sodhi striking once each.
However, the home team recovered through a fighting 83-run stand for the sixth wicket between top scorer Amol Muzumdar (75 in 252 minutes with ten fours) and Ajit Agarkar (47 off 64 balls with 8 fours).
The innings went into decline after Muzumdar, who showed grit, patience and tenacity to pull Mumbai's fat out of the fire in the company of the aggressive Agarkar, offered a tame catch to mid-off after being beaten in the air by left-arm spinner Navdeep Singh.
Ramesh Powar made a quick 32 but Mumbai were all out 45 minutes into the third session. The hosts then fought back in superb fashion through left-arm spinner Nilesh Kulkarni.
The gangling Kulkarni got rid off makeshift opener Gaurav Gupta and star player Yuvraj Singh in the space of four balls in his third over before opener Ravneet Ricky and captain Dinesh Mongia took Punjab to stumps without further loss.
The Mumbai batsmen were unable to cope up with the lateral movement obtained by the Punjab pacemen in the morning and perished.
Mane, Jaffer and one-down Vineet Indulkar all perished by edging the ball, the last-named falling to the well-built Vikram Singh who generated good pace off the wicket.
Things looked bleak for Mumbai at 34 for three when Muzumdar was joined by left- hander Nishit Shetty and the duo slowly rebuilt the innings by playing cautiously.
The fourth wicket pair carried the score to 73 when Shetty was trapped leg before by Sodhi who, however, suffered a shoulder injury at the fag end of the innings when trying to stop a boundary. He could not open the innings as a consequence.
Gagandeep, who bowled spells of sustained hostility to finish with impressive figures of 4 for 67, then sent back Mumbai captain Sairaj Bahutule, back in the squad after missing the second stage of the league phase due to injury.
Mumbai, who went to lunch at a difficult 111 for 5, rallied through the diligent efforts of Muzumdar and Agarkar, who started to attack the bowling from the beginning and struck some splendid cover drives off the medium pacers.
Sodhi gave the breakthrough for Punjab when Agarkar slashed at him and edged to Yuvraj, who had flown down from Kolkata in time for the tie, at second slip.
Muzumdar found an able ally in Powar to continue the recovery act, but fell just when looking good for a ton. He was lured out by Navdeep, on-drove the ball but the spin and drift obtained by the left-arm spinner resulted in a dolly catch to mid off fielder Sodhi.