Asia Cup, Colombo: India 241-8 lost to Pakistan 300-9 by 59 runs
Malik hit 18 fours and a six in his innings
Pakistan have beaten arch-rivals India by 59 runs in a must-win game in the Asia Cup in Colombo.
Shoaib Malik's career-best 143, off just 127 balls, set Pakistan up as they amassed 300-9 in their 50 overs.
Sachin Tendulkar hit 78 but India lost wickets on a regular basis and finished well short on 241-8.
Malik also did a job with the ball, taking 2-42 from his 10 overs with Shabbir Ahmed also claiming 2-38 from his allotted overs.
Earlier Malik hit 18 fours and a six in his quick-fire innings before he was caught by Mohammed Kaif off Sachin Tendulkar.
Pakistan recovered from losing a wicket in the first over, when Irfan Pathan had Imran Nazir lbw sixth ball.Yasir Hameed was next to go for 31 and captain Inzamam-ul-Haq departed for 34 on a track perfect for spinners.
India brought back leg-spinner Anil Kumble in place of injured batsman VVS Laxman, and he took 2-49 in his 10 overs.
Finger spinner Harbhajan Singh weighed in with 1-50 and part-time bowler Tendulkar took 2-28 in five overs.
Pace bowler Pathan was also in the wickets with 3-52 from his allotted overs.
In reply, India got off to a bad start when Virender Sehwag's poor form with the bat continued and he was out for one.
Captain Sourav Ganguly departed by 39 and India's chance was effectively over when Rahul Dravid went for five and Irfan Pathan for 38.
India now play Sri Lanka on Tuesday and must beat them, with Pakistan likely to prevail over Bangladesh on Thursday.
Sri Lanka have already qualified for Sunday's final.
Pakistan: Inzamam-ul-Haq (Capt), Moin Khan (Wkt), Imran Nazir,
Yasir Hameed, Shoaib Malik, Yousuf Youhana, Younis Khan,
Abdul Razzaq, Mohammad Sami, Shoaib Akhtar, Shabbir Ahmed.
India: V Sehwag, S R Tendulkar, S C Ganguly (Capt), R Dravid (Wkt),
Yuvraj Singh, M Kaif, I K Pathan, Harbhajan Singh, L Balaji,
A Kumble, A Nehra.