Captain Rohit Sharma cracked his second half century of the IPL season but could not help Mumbai Indians from suffering a nail-biting defeat at the Wankhede Stadium.
Sharma smashed 58 off 39 balls, studded with 3 sixes and six fours, and got out in the last over to Jaydev Unadkat, who took another wicket and effected a run-out to stop MI at 157 for eight while chasing 161.
There was lot of drama towards the end with Mumbai needing 17 in the last over from Unadkat after being 144 for five.
He had a word with the umpire and then skied the fourth ball, which Unadkat took off the second attempt, to leave Mumbai at 150 for seven.
More From This Section
Mitchell McClenaghan was run out off the fifth ball after failing to complete the second run to end MI's hopes even though Harbhajan smashed the final ball for a six to bring them closer to the target.
Pune made another inroad at the other end when the promoted Karn Sharma dragged a Ben Stokes delivery on to his stumps.
Still troubled by Tahir, Rohit decided to take him on and carted the bowler for a six over mid-wicket one ball after he had dispatched him for a four to bring up the innings' 100 in the 14th over.
Hardik Pandya smashed Jaydev Unadkat for two fours, on either side of the wicket, in the 18th over to bring down the equation as Mumbai needed 24 runs off the last 12 balls.
A brilliant over from Stokes, in which only seven runs could be scored, left MI with the task of scoring 17 in the last over.
Stokes then brought off a brilliant diving catch off the first ball of the final over from Unadkat at deep extra cover before Mumbai fell short of the target.
Openers Ajinkya Rahane (38 in 32 balls) and Rahul Tripathi, who top-scored with a 31-ball 45, gave the Pune innings a solid launchpad by putting on 76 runs in less than 10 overs, but once the partnership was broken Mumbai had things under control.
Skipper Steve Smith made 17, Mahendra Singh Dhoni, who had cracked a 34-ball 61 not out in a last-ball win two days ago, struggled in making 7 while another big-hitter, Stokes, too fell for 17.
Manoj Tiwary struck a breezy 22 off 13 balls with four boundaries towards the end, but the final total appeared below par.
Meanwhile, Harbhajan got to his 200th T20 wicket when he dismissed Smith in the 13th over.
Rahane, not in the best of form going into the game, and Tripathi got the visitors off to an impressive start.
At the halfway stage of the innings, Pune were comfortably placed at 84 for one. Three wickets in quick succession, between the 10th and 13th overs, pegged back Pune.