India 136 for 6 (Badani 34*, Laxman 32) beat Zimbabwe 135 all out (Matsikenyeri 36, Carlisle 28; Pathan 4-24) by four wickets, with 19.3 overs to spare
A magnificent opening spell from Irfan Pathan appeared to have set up a facile victory, but India's batsmen then made heavy weather of their pursuit of 136. They eventually made it home with four wickets and 19.3 overs to spare, but not before Zimbabwe's quick bowlers gave them a good working over. VVS Laxman led the way with 32, but once he went, the lower order had to drag India over the finish line.
Andy Blignaut and Sean Ervine were a considerable menace, bowling with real pace on a pitch tailor-made for fast bowling. And it was left to Hemang Badani - who copped a scary blow on the helmet and was involved in a catastrophic run-out - to ensure that India didn't tumble to an embarrassing defeat.
With Zimbabwe being shot out in just 34.5 overs, they had to come out and face six overs before adjourning for dinner. In that time, Heath Streak sent back Sachin Tendulkar - caught behind flailing at a delivery outside offstump, a ball after a vicious bouncer had gone for four leg byes off his shoulder - and Virender Sehwag carelessly uppercut Blignaut straight to Stuart Matsikenyeri at deep backward point after compiling 23 at typically breakneck pace.
The wobble continued after lunch, despite some classy shots from Laxman and Rahul Dravid. Dravid made 10 before extra pace and bounce proved his undoing. Blignaut got one to lift appreciably, and Dravid's fend off the back foot cannoned back into the stumps (61 for 3).
Yuvraj Singh, who had coped best with the conditions against Australia, didn't last long either, caught at backward-square-leg by Travis Friend after he played an ungainly, off-balance hoick to Ervine (73 for 4).
At that stage, Zimbabwe might have scented an upset, but two dropped catches gave India the wake-up call they needed. First, Badani creamed a square-drive straight to Streak at point. Perhaps unsighted by the lights, Streak let it go right through his hands to the rope. Soon after, a top-edged hook from Laxman was put down by Stuart Carlisle, who had made a lot of ground running towards the fine-leg boundary from first slip.
Laxman rode his luck, and the bounce, to 32 before Ervine struck with another snorter. The ball struck Laxman just below the throat, and as he swivelled around, it dropped onto the stumps, adding insult to a bruise (105 for 5). Rohan Gavaskar made just four, before indecisive calling and running from Badani sent him packing after he had played a ball to short square-leg (115 for 6). That set up a nervous few minutes before India knocked off the remaining runs.
To be fair, Zimbabwe didn't deserve victory after an utterly limp batting display on winning the toss. A 63-run partnership between Carlisle and Ervine - and a belligerent cameo from Matsikenyeri at the end - provided isolated notes of defiance as they collapsed in abysmal fashion, with Pathan picking up 4 for 24. Lakshmipathy Balaji and Amit Bhandari provided impressive back-up but Zimbabwe's cause wasn't helped by the majority of batsmen tamely fending deliveries to the slip cordon.
The hapless Vusi Sibanda lasted four deliveries of Pathan's first over before edging to Laxman, and Taibu was trapped leg before by one that darted back after pitching on middle stump. Neither man bothered the scorers.
Dion Ebrahim soon followed, for 7, as he poked one to Laxman at second slip (11 for 3). That left Carlisle and Ervine to patch up the damage, and they did so with a little help from Ashish Nehra.
Balaji, who kept it straight and narrow, and Pathan, who swung the ball appreciably, had given nothing away in the early stages, but Nehra's introduction gave Zimbabwe breathing space. He slipped and landed awkwardly on his left angle as he ran in for the first ball of his spell, and perhaps unnerved by that, pitched too full in an opening over that went for 17 - three cover-driven fours and a edge to third man from Ervine.
Carlisle had progressed confidently to 28 when disaster came knocking. He was sent back by Ervine, who played the ball out to point. Yuvraj swooped, and hit the stumps direct at the non-striker's end (74 for 4).
Streak walked out to the strains of U2's Beautiful Day, but there was nothing aesthetic about Zimbabwe's capitulation. Bhandari struck the next blow, tempting Ervine into the hook, straight to Murali Kartik - the substitute fielder - at deep fine-leg (79 for 5).
Streak himself made just six before being squared up by a beauty from Balaji, which flew off the edge to Laxman at second slip (85 for 6). Matsikenyeri bludgeoned a couple of cover-drives and a meaty pull to take the total into three figures but Friend made just one before lofting a Bhandari delivery to Gavaskar at cover (101 for 7).
Both Blignaut and Price gave the slips more catching practice, against Nehra and Pathan respectively, with Laxman taking his fourth catch of the game. Matsikenyeri flailed the bat about some more, but when Bhandari came back to induce an edge behind to the keeper, Zimbabwe had been shot out with 15.2 overs still remaining. India had done unto another - Zimbabwe - as Australia had done unto them two days previously. But the expected cakewalk never materialised, as Zimbabwe strove manfully to the bitter end for the winning touch that had completely deserted them.
Dileep Premachandran is assistant editor of Wisden Cricinfo in India.