India beat Pakistan by six wickets in a Group A match of the Champions Trophy at the Dubai International Cricket Stadium on Sunday.
Electing to bat, Pakistan made 241 before being all out with two deliveries left in their stop-start innings.
Saud Shakeel (62) and Mohammad Rizwan (46) scored the bulk of the runs for Pakistan while spinner Kuldeep Yadav claimed 3-40.
Kohli lived up to his reputation of 'Chase Master' by delivering a knock for the ages as he joined forces with Iyer to keep Pakistan at bay. He orchestrated a masterclass with the bat to cap off India's success and send Pakistan on the verge of elimination.
With his prolific form, Virat completed 14,000 ODI runs while steering India to a memorable victory.
Kohli anchored a tricky chase with an unbeaten 100 while Shreyas Iyer made 56 as India registered their second successive victory of the tournament with 7.3 overs to spare.
Player of the match Kohli also became only the third batter, after compatriot Sachin Tendulkar and Sri Lankan Kumar Sangakkara, to complete 14,000 runs in ODIs, reaching the mark quicker than them.
"I think the way we started with the ball was superb," India captain Rohit Sharma said.
"To restrict them to that kind of score was a great effort from the bowling unit.
"We knew it would get slightly better to bat under lights... we backed the experience that we have in our batting line-up to go out there and get those runs.
In pursuit of a 242-run target, Rohit Sharma preserved his fireworks for Naseem Shah and launched a blistering attack before Shaheen Afridi cleaned up his middle stump with an in-swinging yorker to send back the Indian captain for 20 (15).
After a swift 31-run opening stand, Gill and Kohli held India's inning with a touch of caution and aggression. Gill played the role of aggressor while Virat anchored the partnership.
With Naseem and Shaheen proving to be ineffective in the powerplay, Pakistan skipper Mohammad Rizwan introduced tearaway Haris Rauf into the attack.
In his first over of the match, Haris almost got the breakthrough after Gill pulled the ball straight to Khusdil Shah, who squandered the opportunity putting down the Indian opener.
Gill and Virat stitched up a 69-run partnership before mystery spinner Abrar Ahmed forced a breakthrough. A carrom ball from Abrar did the trick, leaving Gill baffled by the turn it extracted. Gill was beaten by Abrar's spin and returned with a handy knock of 46(52).
Iyer joined hands with Virat and orchestrated a partnership that broke the backbone of Pakistan's defence.
Virat adopted the policy of watching the ball till the end while Shreyas pulled out a flurry of reverse sweeps to keep Pakistan's attack at bay.
With a sublime stroke, Virat dispatched the ball towards the boundary rope for a four to celebrate his 74th ODI fifty.
Pakistan's attack lacked bite and failed to break past the formidable partnership.
In the 31st over, Shreyas took the aerial route by ambling down the pitch and clobbering the ball over deep mid-wicket for a towering maximum. He went on to complete his 21st ODI fifty with a single in the 37th over.
In the 39th over, an excellent catch from Imam-ul-Haq off Khushdil Shah brought an end to Shreyas' exploits on the crease with a score of 56(67).
Hardik Pandya came in, muscled the ball away to four and pulled it to Rizwan off Shaheen to return to the dressing room with 8(6).
Virat continued to labour hard for his record-extending 51st ODI century and eventually got his hands on it with a delicious cover drive, sealing a six-wicket win for India with more than seven overs to spare.
India seamer Mohammed Shami began with an 11-ball over that included five wides after Pakistan captain Mohammed Rizwan won the toss and elected to bat.
Shami looked in discomfort in his third over and, replacing him, Hardik Pandya had Babar Azam (23) caught behind. Pakistan lost their other opener in the next over when Imam-ul-Haq departed run out.
Saud and Rizwan added 104 runs to steady Pakistan but Pakistan lost both their set batters after Axar Patel bowled Rizwan and took a catch to send back Saud.
Spinner Kuldeep Yadav (3-40) dismissed Salman Agha and Shaheen Afridi in successive deliveries but was denied a hat-trick.
Khushdil Shah contributed 38 down the order but played three dot balls in the final over before holing out in the deep to be the last man out.