Chasing a victory target of 311 on the final day, MP came tantalisingly close getting all-out for 303 giving the visitors their first outright win of the season. Mumbai now have 20 points but are placed fourth behind MP who are also on 20 but are ahead due to more outright wins.
If the highlight of the final day was brilliant 128 by MP opener Jalaj Saxena and Zaheer's brilliant post-lunch spell of 13 overs that saw him get five for 79, the last 20 minutes were easily the most exciting of the match when it could have gone either way.
MP's No. 11 Ishwar Pandey first hit Zaheer over mid-wicket for a big six and then hit Abhishek Nayar for couple of huge hits over long-off to bring the equation down to eight runs.
However Pandey wanted to hit Nayar for a third six which was taken by the substitute fielder in the deep extra cover as dressing room erupted in joy.
The match can be termed as the best advertisement for domestic cricket where the 22-yard strip provided was top-class.
Starting from an overnight score of 192 for five, Mumbai declared at 250 for five with Nayar getting a quickfire 62 to set up a target of 311.
MP started the chase in the right earnest as Saxena took on the Mumbai attack with some powerful shots on the off-side. He played the square cut and square drives with ease and also hit the pacers through cover region.
He pulled inexperienced Javed Khan for a big six as MP reached 90 before Naman Ojha was taken at covers by Surya Yadav off Iqbal Abdulla's bowling. Left-hander Ankit Sharma then joined Saxena as the duo added 85 runs for the second wicket as Zaheer did the trick coming for his second spell.
Zaheer first bowled a length delivery that saw Ankeet (30) uppishly driving and the catch at covers was taken by Abdulla.
Mumbai skipper Ajit Agarkar softened up Udit Birla with a delivery that hit him on the gloves. Zaheer reaped the benefit when he tentatively nudged at an outgoing delivery to be caught by Wasim Jaffer at slips.
MP skipper Devendra Bundela then got a short-pitched delivery from the senior left-arm seamer which he awkwardly fended and glovesman Aditya Tare covered some distance to take a smart diving catch.
National selector Vikram Rathour certainly would have been impressed with Zaheer's response to the exclusion from the limited overs squad.
Nayar then ran Saxena out with a brilliant piece of fielding off his own bowling. The India A regular Saxena made 128 with the help of 16 boundaries and a six.
With Nayar trapping Satyam Choudhary leg before, Zaheer got his fourth and fifth victim in Rahul Bakshi and Anand Rajan who again got a raw deal from umpire Nand Kishore who gave some terrible decisions in the match.
From 175 for one, MP were reduced to 252 for eight and when Harpreet Singh (38) edged one off Nayar to Tare, one thought it was all over for the hosts but Pandey and Amarjeet Singh kept the game alive till the final three overs.
Mumbai: 304 & 250/5 dec (Wasim Jaffer 67, Abhishek Nayar 62 no, Amarjeet Singh 2/59).
MP: 244 & 303 (target 311) (Jalaj Saxena 128, Zaheer Khan 5/79, Abhishek Nayar 3/56).
Result: Mumbai won by 7 runs.