Kohli, who is currently leading India in an away Test series against South Africa, was named recipient of the Sir Garfield Sobers Trophy for Cricketer of the Year and also the ODI Cricketer of the Year. Besides he was picked the captain of both the ICC's Test and ODI teams of the year.
Ironically, this comes at a time when his leadership has been called into question in the ongoing three-match series against South Africa, which India are trailing 0-2 after heavy losses.
He also captained India to the top of the ICC Test rankings.
"It means a lot to win the Sir Garfield Sobers Trophy for becoming the ICC Cricketer of the Year 2017 and also the ICC ODI Player of the Year," Kohli was quoted as saying in an ICC statement.
More From This Section
"I won that back in 2012 also but it's the first time winning the Garfield Sobers Trophy, and it's a huge honour for me. It's probably the biggest of all in world cricket and two Indians getting it back-to-back makes it more special," he added.
Apart from Kohli, there were four other Indians who were picked in the ICC's Test and ODI Teams of the Year. While the Test team featured Cheteshwar Pujara and Ravichandran Ashwin, Jasprit Bumrah and Rohit Sharma found a place in the ODI side.
Kohli surprisingly pipped Australian skipper Steve Smith for the ICC's Test team captaincy. Smith had led his team to a dominating 4-0 win over England in the Ashes.
Smith, however, claimed the Test Player of the Year award after scoring 1875 runs in 16 matches at an average of 78.12, with eight hundreds and five 50s.
In the nominations for ODIs this year, Kohli was placed alongside Pakistan paceman Hasan Ali, Afghanistan leg-spinner Rashid Khan and his own teammate Rohit Sharma.
Smith, meanwhile, beat off competition from last year's winner Ashwin, who took 111 wickets at 25.87, Cheteshwar Pujara, who scored 1,914 runs, Kohli, and Ben Stokes, who hit 1,000 runs at 40.00 and took 35 wickets at 27.68.
Chahal was named Player of the Match and Player of the Series for his performance -- the best by an Indian bowler in T20I history, and the third-best of all time.
He is behind only Sri Lanka's Ajantha Mendis, who took 6/8 and 6/16 against Zimbabwe and Australia respectively.
Afghanistan's Rashid Khan was adjudged ICC Associate Cricketer of the Year after taking 60 wickets in 2017 -- a record for an associate player in a calendar year.
English pacer James Anderson and all-rounder Ben Stokes also found a place in the Test team.
Of these, Warner, de Kock and Stokes made the ODI squad as well. The others in the 50-over team included South African former skipper AB de Villiers, Afghanistan's teenage leg- spinner Rashid Khan and two Pakistani cricketers in Hasan Ali and Babar Azam.
The ICC selection would come as a morale-booster for Stokes, who had been embroiled in a disciplinary mess after being caught up in a brawl outside a bar last year.