Dhoni hit four boundaries during his 96-ball knock and added an invaluable 112 runs for the fifth wicket with Rohit Sharma (58) and another 41 for the seventh with Irfan Pathan (38 not out) after India won the toss and batted.
India nearly spoiled a robust start after being restricted to 129-4 but Dhoni and Sharma ensured all was not lost, initially pushing for singles and then opening up later.
Virender Sehwag (49) and Gautum Gambhir (35) shared a rapid first-wicket partnership of 88 in 63 balls as India threatened a big total before the home team hit back by taking three wickets in the space of just three runs and nine balls.
Paceman Rao Ifktihar, who finished with 3-51, had Gambhir caught at cover-point before pace partner Abdur Rauf struck twice in his sixth over.
Rauf, playing only his second one-day match, forced an edge off Sehwag to wicket-keeper Sarfraz Ahmed before dismissing the in-form Suresh Raina (one), caught hooking in the deep.
Yuvraj Singh too threatened to take the attack apart during his 32-ball 37 (four boundaries and a six) before he edged Iftikhar for Sarfraz to take a diving left-handed catch.
Sharma and Dhoni steadied the innings through their 139-ball partnership. Iftikhar returned for his second spell to have Sharma caught at long-off. Sharma hit four boundaries during his 71-ball knock.
Dhoni miscued a heave off Sohail Tanveer in the penultimate over and was caught by Sarfraz.
Pakistan, in a must-win situation after losing to Sri Lanka in their opening Super League match on Sunday, suffered a big blow when captain Shoaib Malik failed to pass a fitness test after suffering dehydration.
Misbah-ul Haq led the team in Malik's absence as Pakistan brought in Nasir Jamshed for Malik. Pakistan also included paceman Rauf and off-spinner Saeed Ajmal in place of Wahab Riaz and Mansoor Amjad.
Ajmal, 30, made his one-day debut.
India, who will qualify for the final if they win this match, made four changes. Opener Sehwag, paceman Praveen Kumar and leg-spinner Piyush Chawla -- all rested in the last match -- returned with the fit-again Irfan Pathan.
India 308/7 in 50 overs (Dhoni 76, Rohit Sharma 58, Sehwag 49, Yuvraj 37, Irfan Pathan 38 n o, Gambhir 35; Iftikhar 3/51, Rauf 2/66) Vs Pakistan.