Kolkata Knight Riders 129 for 7 (Steyn 3-27) beat Bangalore Royal Challengers 124 for 4 (Boucher 50, White 30) by five runs
Scorecard and ball-by-ball details
How they were out

Desperately seeking points after a string of losses the Kolkata Knight Riders and Bangalore Royal Challengers, two of the IPL's struggling but high-profile teams, produced a fascinating, if low-scoring, contest that was decided in Kolkata's favour off the penultimate ball. Their second encounter lacked the batting heroics of the first but there was plenty of brilliance in the field and with ball in a rain-shortened match that ended way past midnight.

The day began with Kolkata celebrating the birthday of its greatest son, Rabindranath Tagore, and ended with a crowd of thousands, braving a typical seasonal thundershower, delighting in the exploits of its current favourite as Sourav Ganguly led with the ball to revive his side's hopes in the tournament.

Ganguly had limped to a run-a-ball 20 with the bat, but his miserly spell - 3 for 7 from three overs - choked a stumbling chase of 130 in 16 overs that, despite a flurry towards the end from Mark Boucher, was always behind the eight ball. It was Ganguly's canny bowling, after Brad Hodge produced a superb direct hit from backward point to get rid of J Arunkumar, that perhaps decided the outcome. Bangalore's top order failed to keep pace and Ganguly, clearly charged up by the occasion, struck a huge blow by bowling his opposite number Rahul Dravid. By the time Ganguly was done Bangalore needed 78 off 36 balls, a near-impossible task.

Cameron White and Boucher played good hands, the latter almost pulling off a win, but Bangalore's top order had left them with a bit too much to do. White cut loose to take 15 runs off the 11th over from Laxmi Ratan Shukla, eight came off the next from the next from Ashok Dinda, and another 15 off Umar Gul kept them in line with the asking-rate. Ishant Sharma just gave five off the 14th, and when White was run out backing up too far at the non-striker's end by Murali Kartik, it seemed a done case. Boucher, whose 26 had needed 30 deliveries, then scored 24 off just 10, but Bangalore still fell five runs short.

Bangalore's top-order mess needs to be addressed, but their effort in the field after Kolkata decided to bat was heartening. Aakash Chopra, the former India opener, came in to bolster a struggling top order but didn't make much of an impact, lbw to Dale Steyn, and Hodge fell pulling Zaheer Khan.

If he looked smooth with the ball, Ganguly wasn't as much with the bat. Off the mark with an uppish drive for four and tangled by a short one from Praveen Kumar, he nudged around for 20 and was the first of two run-outs in Kolkata's innings, White pulling off a direct hit.

The going had been slow for Kolkata, and David Hussey tried to step it up, lofting a Praveen slower delivery over long-off, before placing the following delivery through extra-cover. He launched Anil Kumble for two consecutive sixes, but a good throw from Steyn cut him off. Tatenda Taibu got his first game but went early, top-edging Steyn, who then picked up a third when Shulka chopped onto his stumps.

An embarrassing goof-up delayed play ahead of Steyn's final over, the 14th of the innings, with only one bowler allowed to bowl four. The scorers and umpires mixed up the two Kumars, and had R Vinay with four overs bowled and Praveen with one, instead of three and two. Dravid, taking the walkie-talkie from one of the on-field umpires, pleaded his case and Steyn finally got to bowl. Wriddhiman Saha and Murali Kartik added 34 quick runs, the highest partnership of the innings, and Kolkata finished on 129.

That proved just out of reach for Bangalore, who have now lost six of eight matches.