Dwayne Bravo's superb all-round showing saw Mumbai Indians edge past Royal Challengers Bangalore in a thrilling finish in the Group B match of the Champions League Twenty20 in Durban, on Sunday.
Zaheer Khan claimed the wicket of Virat Kohli off the final delivery of the match as Bangalore finished on 163 for five in 20 overs to lose by a narrow margin of two runs after Mumbai recovered to post 165 for seven.
Bravo made an impact with the bat as he stroked a quick 29 from 17 balls and then took two for 23 in four overs with the ball to play a crucial role in Mumbai's victory.
Rahul Dravid hit an unbeaten 71 from 58 balls and Virat Kohli stroked a quickfire 47 from 24 balls as the duo put on 63 runs in 37 balls for the fifth wicket before the latter got a top edge and was caught behind the wickets.
Despite the victory, Mumbai are unlikely to make the semi-finals of the tournament. The match between Bangalore and Highveld Lions has now become a virtual quarter-final with the winner progressing to the last four.
Earlier, Dale Steyn claimed three for 26 before Saurabh Tiwary and Dwayne Bravo rallied Mumbai Indians. Tiwary was unbeaten on 38 from 30 balls, while Bravo made 29 from 17 balls to take Mumbai Indians to a respectable 165 for seven in their 20 overs after struggling at 84 for five in 13 overs.
Steyn took two wickets in his second over to put Bangalore in charge before Mumbai cut loose in the final overs. Mumbai changed the script in the last few overs as they hit 69 runs in five overs for the loss of two wickets.
Bangalore held Steyn back to counter Kieron Pollard's threat and the move paid off. He got the West Indian caught at cover off a leading edge for a three-ball duck after he had also claimed the wicket of Dhawan (41) in that over.
Vinay Kumar emerged as the best bowler for Bangalore as he took one for 16 in four overs but captain Anil Kumble struggled as he was hit for 45 runs in his four overs.
Electing to bat, Mumbai struggled to get going in the first few overs.
Praveen Kumar made a brilliant start with the ball for Bangalore. The first over was a maiden, while in his second over he claimed the big wicket of Sachin Tendulkar.
Kumar was hit for a six over midwicket by Shikhar Dhawan, while Tendulkar pulled him for a four but it was Kumar who had the last laugh. Tendulkar edged behind an outgoing delivery and was caught by wicketkeeper Robin Uthappa for 11.
Meanwhile, Vinay Kumar provided them further boost when he got Ambati Rayudu caught at first slip for three.
The first six overs went to script for Bangalore as Mumbai scored 36 for two, while hitting just three boundaries and a six.
Bangalore's bowlers continued to keep it tight and it was only a matter of time before Mumbai tried something fancy.
JP Duminy (10) tried to break the shackles as he chipped Jacques Kallis down the ground but it went straight into the hands of another South African Dale Steyn at long-on.
At the halfway stage, Mumbai reached 65 for three with Dhawan on 29 from as many balls and Tiwary on four.
Dhawan finally got one in the middle of the bat as he pulled Kallis over midwicket for a six, in the 12th over.
Steyn was finally introduced in the 11th over and he got to a roaring start with two wickets in his second over. Dhawan threatened to change gears as he hit Kallis for a six and a boundary but Steyn quashed their hopes with a double blow.
First Dhawan lofted one straight to Dravid after a brisk 41 from 37 balls, while Kieron Pollard was caught at covers off a leading edge for a three-ball duck as Mumbai slipped to 84 for three after 13 overs.
Dwayne Bravo tried to counter-attack as he hit Kumble for back to back boundaries in the 15th over, while Tiwary slammed Steyn for a huge six over midwicket.
The West Indian all-rounder then took Kumble to the cleaners as he hit him for two sixes down the ground followed by a boundary over midwicket in the 18th over. Bangalore captain Kumble was hit for 22 runs in his final over as he ended up conceding 45 runs in his four overs.
In the next over, Tiwary went after Steyn as he hit the pacer for back to back boundaries, through point and down the ground.
But Steyn got things back on track as he got the wicket of Bravo, who skied a high full toss and was caught on the off-side for a quick 29 from 17 balls.
Harbhajan kept the runs coming as he hit three quick boundaries in his 14 before he was run out in the final over.
Tiwary finished unbeaten on 38 from 30 balls as Mumbai recovered to post a competitive 165 for seven in 20 overs.
As many 60 runs came in the final four overs as Mumbai staged a remarkable comeback courtesy of Tiwary and Bravo.
Bangalore made a good start with the bat as Dravid and Kallis hit a boundary each off Zaheer Khan in the first over.
Dravid seemed in good touch right from the start. He pulled Zaheer through midwicket and then cracked him through covers for back to back boundaries in the third over.
Bangalore made good progress as they reached 40 for no loss after five overs.
Mumbai struck the first blow through an unlikely source. Young pacer Abu Nechim, drafted in as a replacement for Abhishek Nayar, got the big wicket of Kallis.
The veteran batsman (15) was unlucky to be ruled out leg before wicket to an incoming delivery that looked to be missing the leg stump, in the fifth over.
Bravo then made a difference with the ball with a two-wicket burst.
Uthappa got a lifeline when Duminy dropped a simple catch at covers but Bravo had his man off the very next delivery. The right-hander flicked a full delivery straight to Dhawan at deep square leg to be dismissed for six.
Bravo then dealt Bangalore another huge blow with the wicket of Ross Taylor for nine. The Kiwi batsman tried to play across the line on the leg side but got an edge that lobbed quite high and was caught by wicketkeeper Rayudu behind the stumps.
At the other end, Dravid kept the scoreboard moving at a good rate. The former India captain brought up his half-century from 38 balls with two runs through the covers off Harbhajan in the 12th over.
Harbhajan Singh gave Mumbai the upperhand with the wicket of Cameron White. The Australian shuffled all across his crease but failed to keep out the yorker from Harbhajan and was bowled for seven.
Virat Kohli brought back some cheer to the Bangalore dressing room when he hit Nechim for a huge six over midwicket to take the total to 111 for four in 15 overs.
With 47 needed from four overs, Malinga came up with a superb over as he conceded just seven overs.
Once again Kohli made sure Bangalore didn't fall back far behind as he launched Nechim into the stands for his second six to leave the equation at 28 needed from two overs.
Kohli then attacked Malinga as he thrashed him for a hat-trick of boundaries to make it 13 needed from the final over.
Kohli stroked another couple of boundaries in Zaheer's final over, leaving Bangalore to score three off the final delivery for victory. But Zaheer's experience made the difference in the end.
The pacer bowled a full toss on the batsman's legs who got a top edge as he turned hit a bat too early and was caught by wicketkeeper Rayudu behind the stumps.
Bangalore finished on 163 for five in 20 overs to lose by two runs.
Despite the loss, Bangalore are heavy favourites to make the semis. Their last group match against Highveld Lions is now a virtual quarter-final, while Mumbai are out of the tournament.