With the win, India's head-to-head record against Pakistan in World Cup matches now sits at 7-0.
Chasing a competitive target of 337 runs, Pakistan faced an early hiccup as Imam-ul-Haq was leg-before off the fifth ball of the fifth over by debutant Vijay Shankar, who completed the over as Bhuvneshwar Kumar walked off the field due to tightness in his left hamstring.
Fakhar Zaman and Babar Azam recovered Pakistan well in time, adding 104 runs for the second wicket. However, in a span of 12 runs, the arch-rivals lost four crucial wickets. Kuldeep Yadav bagged two quick wickets -- Babar (48) and Fakhar (62). Hardik Pandya joined the party and he earned two wickets in an over -- Mohammad Hafeez (9) and Shoaib Malik (0), reducing Pakistan on 129/5.
Imad Wasim (22*) and Sarfaraz Ahmed tried to rebuild Pakistan's innings but their brief 36-run stand came to an end as Shankar returned and dismissed Sarfaraz for 12.
The rain interrupted the match after 35 overs. However, after almost 50 minutes, the match was curtailed to 40 overs and the run-chase was adjusted to 302 runs based on the Duckworth-Lewis (DLS) method. Pakistan needed 136 runs off just 30 balls. Imad and Shadab were left stranded on 46 and 20, respectively, and Pakistan fell short by 89 runs.
After sent in to bat first, Rohit Sharma and Virat Kohli powered India to post a total of 336 runs for the loss of five wickets.
India got off to a flying start as Rohit and KL Rahul formed a solid and record-breaking 136-run best opening stand against Pakistan. Previously, former cricketers Navjot Sidhu and Sachin Tendulkar had formed a 90-run partnership during the 1996 edition.
Rahul completed his maiden World Cup fifty before Pakistan got a breakthrough and sent Rahul (57) back to the pavilion. Wahab Riaz dismissed the Indian batsman caught at covers by Babar Azam. His innings saw three boundaries and two sixes.
The Indian captain Kohli joined Rohit, who raised his bat to celebrate his 24th ODI hundred. The Hitman on 99 ran for a single run off Shadab Khan and welcomed his ton off just 85 balls. India reached the 200-run mark inside 35 overs.
Kohli and Rohit took India to a comfortable position and formed a 98-run stand for the second wicket, before Hasan Ali put breaks on India's ticking scoreboard as he got rid of Rohit for 140, leaving India at 234/2 in 38.2 overs. Rohit played a ramp shot and gave an easy catch to Wahab at short fine leg. The Hitman's innings included 14 fours and three sixes.
Hardik Pandya came out to bat at number four and started playing his aggressive game from ball one. He and Kohli stitched a brief partnership of 51 runs before his cameo of 19-ball 29 runs came to an end by Mohammad Amir. Pandya lined up the helicopter shot but it was caught by Babar at long-on. Amir returned and got former India captain MS Dhoni caught behind cheaply for one, reducing India to 298/4.
The Indian captain became the fastest player to make 11,000 ODI runs in his 222nd innings. Kohli's milestone smashed master-blaster Sachin Tendulkar's record which he had completed in his 276th innings.
Soon after rain arrived at the venue and the players walked off with India on 305/4 in 46.4 overs. After almost half-and-hour, the hover cover was removed. The umpires checked the 30-yard circle and declared mid-innings break of 15 minutes and no overs were lost.
Following the resumption, a quick Amir bouncer helped Pakistan bag the pricey wicket of Kohli, who was caught behind for 77. Vijay Shankar and Kedar Jadhav remained unbeaten on 15 and 9, respectively. For Pakistan, Amir was the pick of the bowlers as he returned with figures of 3-47 in his 10 overs quota.
Brief scores: India 336/5 (R Sharma 140, V Kohli 77, KL Rahul 57, M Amir 3-47) beat Pakistan 212/6 (F Zaman 62, V Shankar 2-22, K Yadav 2-32, H Pandya 2-44) by 89 runs.