Kohli was facing stiff competition from Root but in the end, the 28-year-old is seated at the top of the table and his position isn't going to be displaced.
The Test series between India and England emerged as a battle of supremacy between Kohli and Root, both of whom have had a phenomenal year 2016.
There was a close contest between the two batsmen, who are already hailed as one of the modern day greats. But in the end, it was India's batting masterclass to surpass Root and reach at the summit.
Root has accumulated 2,567 international runs in this year, while Kohli surpassed him after finishing 2016 with 2,595 runs in his kitty.
Ajinkya Rahane and Rohit Sharma are the other two Indian batsmen to cross 1,000-run-mark in the calendar year.
Here are top run scorers in the year 2016 (till December 28):
1. Virat Kohli
The Indian Test skipper, who is going through a purple patch in this year, has already had an incredible 2016 across all formats.
The 28-year-old aggressive batsman has accumulated 2595 (1215 Tests, 739 ODIs & 641 T20Is) in 35 international games.
He has slammed three double tons in this year and who would forget his phenomenal batting performance in the IPL 2016.
2. Joe Root
The right handed batsman has accumulated (1477 Test, 796 ODI, T20Is 297) 2,567 runs in 39 international games with a highest score of 254.
With 1477 runs in 17 Test matches, Root ended 2016 as the highest run-getter of the year in the longer format.
Root averaged 49.23 in 2016, with 254 against Pakistan being his highest. The 25-year-old blasted 3 Test tons and 10 half centuries (most by any batsman in 2016) in the year.
But he was beaten by Virat Kohli and Pakistan's Azhar Ali, in terms of Test average.
3. David Warner
The Australian opener has amassed (748 Tests, 1388 ODIs & 238 T20Is) 2,374 runs in 44 international games played so far.
The southpaw's highest score this year was 173. He was also the second highest run-scorer in IPL 2016.
4. Steve Smith
Australian skipper and another modern day great Steve Smith has scored (924 Tests, 1154 ODIs & 173 T20Is) 2,251 runs in 45 games at an average. His highest score this year is 149.
5. Kane Williamson
The New Zealand skipper has made 1,726 runs (753 Tests, 590 ODIs & 383 T20Is) in the year 2016.
Williamson's number would have been better had he not failed badly against India. But his performance against Pakistan and Bangladesh at home has been better.
6. Quinton de Kock
The South African has accumulated (626 Tests, 857 ODIs & 229 T20Is) 1712 runs in just 32 matches. The left-handed batsman's highest individual score this year is 178.
For his brilliant performance in limited overs format, the 24-year-old was awarded ICC ODI player of the year award.
7. Jonny Bairstow
The wicketkeeper batsman is the second highest run-getter in Tests in 2016 after Joe Root. Bairstow has made 1668 runs (1470 Test, 198 ODI) in 27 games.
He has been in great form this year and second leading run-scorer for England after Joe Root.
8. Hashim Amla
He's another South African in top 10 run getters this year and aggregated 1500 (681 Tests, 511 ODIs & 308 T20Is) in 30 matches. 201 is the highest he scored this year.
9. Dinesh Chandimal
The Sri Lankan wicketkeeper-batsman is highest run scorer for his side in this year. In 37 matches the right-handed batsman has scored (450 Tests, 656 ODIs & 373 T20Is) 1,479 runs.
10. Alex Hales
This right-handed batsman from England has scored 1,426 runs (537 Test, 743 ODIs & 146 T20Is)in 32 games with 171 being his highest.