Electing to bat, Mumbai posted a daunting score of 183 for three with Rohit Sharma (62 not out), Dinesh Karthik (41) and Sachin Tendulkar (44) all chipping in with crucial runs.
In reply, Pune could only manage 142 for eight in their allotted overs with Mitchell Johnson picking up three wickets for the hosts.
Mumbai have six points from four matches, having won three and lost one, the same as Royal Challengers Bangalore and Sunrisers Hyderabad but top the table due to a better run rate.
Pune have lost three of their four matches and are in eight position with just two points.
Earlier, Sachin Tendulkar and Ricky Ponting (14) got Mumbai off to their best start this year with a 54-run partnership.
Ponting played the sheet anchor role while Tendulkar was the aggressor.
The Indian batting great's innings was a throwback to the yester years, where he would demolish bowling attacks single-handedly. Tendulkar plundered Ashok Dinda for 17 runs in the second over setting the tone for the rest of the innings.
Tendulkar was in a aggressive mood and took on the Pune bowlers dominating them with some lusty blows juxtaposed with his signature back foot and front foot cover drives.
Ponting fell to an innocuous delivery from Yuvraj Singh. Tendulkar didn't last too long either caught by Mitchell Marsh on the long on boundary off the bowling of Aaron Finch.
Mumbai's two top scorers, Karthik and Rohit Sharma, then got together and strung a 55-run partnership for the third wicket.
Karthik was the aggressor of the two but Rohit Sharma took the initiative after the former fell in the 16th over.
Joined by the big West Indian Kieron Pollard, Sharma took the attack to Pune as Mumbai scored 68 runs in the last five overs to post a big score.
Ashok Dinda created a record by becoming the most expensive bowler in IPL history. The Indian pacer conceded 63 runs in his four overs without taking a single wicket.
Pune's chase got off to the worst possible start as they lost Finch (0) in the very first ball, clean bowled by Australian compatriot Mitchell Johnson.
It was all downhill for the visitors from then on as Ross Taylor (4) as sent packing courtesy a mix-up with Robin Uthappa (7).
Uthappa himself didn't hang around for too long, castled by another in-swinging Johnson delivery.
Tirumalasetti Suman (23) came in hit five boundaries to get some momentum going for his team but tried a shot too many, caught at long on by Pollard off the bowling of Harbhajan Singh.
Yuvraj (24) after hitting a boundary and two sixes too perished trying to score the big runs.
Pune kept losing wickets at regular intervals and were never able to get any momentum going.
Mitchell Marsh (38) played a cameo towards the fag end of the innings but managed to only delay the inevitable.