Group A, Centurion Park: India 276-4 (45.4 overs) beat Pakistan 273-7 (50 overs) by six wickets
Sachin Tendulkar battled through pain to propel India into the Super Six stage of the World Cup.
Tendulkar passed 12,000 runs in one dayers with a majestic 98 off only 75 balls, despite straining a thigh.
A superior knock even by his glorious standards, Tendulkar gave India's run-chase the ideal springboard after Saeed Anwar's 101 saw Pakistan set a challenging target.
Tendulkar's dismissal in the 28th over gave Pakistan hope, but Yuvraj Singh (50) and Rahul Dravid (44) expertly guided India home with 26 balls to spare.
Pakistan, who are yet to beat India in four World Cup matches, must now beat Zimbabwe convincingly and hope Australia beat England to keep their hopes of progressing alive.
Tendulkar was the architect of a stunning early salvo that saw India's 50 reached at the end of the fifth over.
The Little Master set out his stall early, hitting Shoaib Akhtar's first over for 18 runs.
But skipper Waqar Younis hit back hard in the sixth over, putting a spoke in India's rapid progress with two wickets in two balls.
Sehwag was caught for 21 before skipper Sourav Ganguly shuffled across his stumps and was trapped in front.
India had many reasons to cheer on a wonderful day's cricket
Mohammad Kaif joined Tendulkar, taking the score along to 155 before he played on to Shahid Afridi, who on his 23rd birthday was curiously preferred to spinner Saqlain Mushtaq.
Despite Tendulkar's injury worsening, his dazzling strokeplay, which produced 12 fours and a six, was still in evidence.
But after calling for a runner he fell victim to a brutally fast ball from Shoaib, who was starting his third spell after conceding 35 runs in three overs. He eventually returned personal worst figures of one for 72.
Shoaib's pace remained a threat but Dravid and Singh kept level heads in a tense situation, putting on 99 unbroken runs in 18 overs to seal a fine win.
Earlier, Anwar proved himself a man for the big occasion with a 20th one-day and third World Cup century.
But he was let down by an indifferent display from his team-mates, with Younis Khan's 32 the next best.
They started well, scoring at six an over for the first 10 overs before Taufeeq Umar was removed by Zaheer Khan.
Anwar propped up Pakistan's innings with a great knock
The ongoing experiment of playing Abdul Razzaq at three failed, with Dravid taking a fine one-handed catch to remove him for 12.
Pakistan were 98 for three when Inzamam-ul-Haq soon followed to continue his wretched run.
Inzamam drove Anil Kumble for four with the first ball he faced, but was hopelessly out of his ground when sent back by Anwar and run out at the non-striker's end.
The tide had turned to India, but a key partnership between Anwar and Yousuf Youhana restored parity to the balance of the match.
The pair put on 73 in 85 balls before an otherwise watchful Youhana lost his cool and was caught in the deep to give the admirable Javagal Srinath his only scalp.
Anwar, visibly exhausted by now, reached his century with a single but perished soon after to a lazy shot and was bowled by Ashish Nehra.
Rashid Latif blazed an unbeaten 29 at the death, but the suspicion was that Pakistan's total was a little light.
It was a suspicion Tendulkar and company were about to confirm in the most emphatic fashion.
Pakistan: Taufeeq Umar, Saeed Anwar, Shahid Afridi,
Inzamam-ul-Haq, Yousuf Youhana, Younis Khan, Abdul Razzaq,
Rashid Latif, Wasim Akram, Waqar Younis (capt), Shoaib
India: Sachin Tendulkar, Virender Sehwag, Saurav Ganguly
(capt), Rahul Dravid, Yuvraj Singh, Mohammad Kaif, Dinesh
Mongia, Anil Kumble, Javagal Srinath, Zaheer Khan, Ashish Nehra.
Umpires: RE Koertzen, DR Shepherd.