Royal Challengers Bangalore thumped Mumbai Indians by seven wickets in a top-of-the-table Indian Premier League clash at the Brabourne Stadium on Saturday.
Chasing 152 to win, the visitors reached 155 for the loss of just three wickets, and with five balls to spare.
It was the third win on the trot for the Royal Challengers - following their opening defeat at the hands of Kolkata Knight Riders - and helped them replace their opponents at the top of the standings.
The Mumbai Indians, on the other hand, suffered their first defeat in three games.
Jacques Kallis, the incumbent holder of the Orange Cap as the tournament's highest scorer, with 264 runs in four matches thus far, continued his unbeaten run - he is yet to be dismissed in four matches this season - with yet another superlative innings.
The South African's 55-ball 66 was replete with nine hits to the fence and was a well-paced innings in every sense of the term.
As has become customary by now, the South African held fort at one end, playing the sheet anchor's role to perfection.
Chasing a modest total, the team from Bangalore made a sedate start.
Kallis almost witnessed his unbeaten run so far come to an end early on.
In the second over of the Bangalore innings, bowled by Lasith Malinga, the South Africa played an uppish flick and as Ambati Rayudu made a valiant attempt to take an overhead catch, he landed on his elbow. He took no further part in the match.
Manish Pandey eased the pressure a bit with a couple of boundaries in Zaheer's second over.
Kallis, who had looked tentative in Malinga's first over, helped himself to three boundaries in the Slinga's second over.
And as Bravo was introduced into the attack in the fifth over, Pandey welcomed him with a massive six over long-on.
Not to be left behind, Kallis helped himself to three boundaries in Kieron Pollard's first over - the sixth of the Bangalore innings.
And the South African added two more boundaries to his total in Bravo's second over.
Pandey helped himself to a maximum over Harbhajan (over long-on) before hitting the next ball straight to Pollard at midwicket.
The Karnataka batsman, who played for Mumbai Indians in the inaugural season, scored a 27-ball 40, inclusive of three boundries and three maximums.
His dismissal also brought to an end an impressive first wicket partnership that yielded Bangalore 85 runs and came off just 59 balls.
In came Robin Uthappa (23) and he was let off in the second ball he faced, dropped by Tare off Jayasuriya.
The Karnataka batsman, another one who started out with the Mumbai team in the inaugural edition, celebrated the reprieve with boundaries of Jayasuriya and Harbhajan and a massive six of Bravo.
Soon after, Kallis completed his seventh IPL fifty, his third this season with a single of Malinga.
But Uthappa paid the price for his extravagance, Zaheer having him caught by Malinga at deep backward square leg.
Virat Kohli (17) smashed successive sixes off Harbhajan's final over before being run out.
But by then Bangalore needed just 16 to win. And Kallis and Eoin Morgan (seven not out) ensured there were no further problems.
Earlier, R Vinay Kumar struck thrice in an over as Royal Challengers Bangalore restricted Mumbai Indians to a modest total.
The home team made just 151 for nine in their stipulated 20 overs.
Vinay Kumar was the most successful bowler for the team from Bangalore, with figures of three for 25 off his four overs.
The Karnataka bowler took three wickets in his third over to reduce the home team from a comfortable 71 for three to a disastrous 76 for six.
The hosts never recovered from that slump.
Dale Steyn also helped himself with three wickets, the South African's figures reading 4-0-26-3.
The bane of the Mumbai Indians' innings was the lack of a decent partnership.
Steyn trapped Sanath Jayasuriya (2) leg before to give Bangalore a perfect start.
The former Sri Lankan captain hasn't been out of form in this edition and his early dismissal didn't come in as much of a surprise.
However, in the South African's second over Sachin Tendulkar (25) cut loose, hitting three successive boundaries, all to the same region - the square leg.
Taking a cue from his skipper, Aditya Tare (9) also smashed Jacques Kallis to the fence.
But the South African had his revenge in the very next ball, having the batsman caught by Manish Kumar at short midwicket.
Saurabh Tiwary (25), who had two half centuries coming into the match, announced his arrival with a boundary each of Vinay Kumar and Kallis.
As the first strategic time out was taken - after the ninth over - the visitors had managed to tie down the hosts to 69 for two.
And Anil Kumble struck immediately after resumption rattling Tiwary's stumps.
Vinay Kumar had Ambati Rayudu (three) caught behind in the next over to increase Mumbai's woes.
And the bowler compounded it further by cleaning up Tendulkar two balls later.
And in the last ball of the same over, Vinay Kumar had Dwayne Bravo (1) out leg before. The damage was done.
Kieron Pollard (21) and R Sathish (24) tried to rebuild the innings with a 47-run partnership for the seventh wicket, combining aggression and caution in the right mix.
Pollard, the costliest buy for Mumbai Indians in the auction earlier in the year, tried to break free smashing Praveen Kumar over long-on for a maximum and a lucky boundary over the bowler's head.
But just as the West Indian looked threatening, Steyn had him caught at deep cover by Virat Kohli.
Four balls later, Steyn got his third wicket when R Satheesh was brilliantly caught by Rahul Dravid at cover.
And it seemed there was no sting in the tail for the Mumbai Indians, when Harbhajan (4) was dismissed.
But Zaheer Khan hit a few lusty blows - taking 16 runs of Praveen Kumar's last over - to take his team to their eventual total.
Zaheer's 23 not out was the highest score by a No.10 batsman in IPL history.
Earlier, Mumbai Indians' captain Sachin Tendulkar called correctly and asked Bangalore to bowl.
"We wanted to bat first," said Sachin.
His opposite number didn't seem much perturbed though.
"Maybe 160-170 would be gettable on this wicket," said Anil Kumble. At the end of the day he was vindicated.
Mumbai Indians: Sachin Tendulkar (captain), Sanath Jayasuriya, Ambati Rayudu, Saurabh Tiwary, R Satish, Aditya Tare, Dwayne Bravo, Kieron Pollard, Harbhajan Singh, Zaheer Khan, Lasith Malinga.
Royal Challengers Bangalore: Anil Kumble (captain), Jacques Kallis, Manish Pandey, Robin Uthappa, Virat Kohli, Eoin Morgan, Rahul Dravid, Mark Boucher, Praveen Kumar, Dale Steyn, R Vinay Kumar.