The Test series between India and England is going to be a battle of supremacy between Kohli and Root, both of whom have had a phenomenal year 2016.
There is another close contest going on between two batsmen, who are already hailed as one of the modern day greats.
If Root has accumulated 2,207 international runs in this year, Kohli is not far behind with 2,196 runs.
Kohli and Root are the only batsmen to have breached 2,000 run mark in a calendar year in 2016.
While 21 players in all have scored more than 1,000 runs in 2016. Ajinkya Rahane is only the third Indian batsman to cross 1,000 run mark after Kohli and Rohit Sharma.
Here are top run scorers in the year 2016:
1. Joe Root (England)
The right handed batsman has accumulated 2,207 runs in 38 international games at an average of 51.32 with a highest score of 254.
2. Virat Kohli (India)
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 2,196 runs in 34 matches (4 less than Root) at an incredible average of 84.46. He has slammed two double tons in this year and who would forget his phenomenal batting performance in the IPL 2016.
3. David Warner (Australia)
The Australian opener has amassed 1,829 runs in 38 international games played so far at an average of 43.54. The southpaw's highest score this year was 173. He was also the second highest run-scorer in IPL 2016.
4. Steve Smith (Australia)
Australian skipper and another modern day great Steve Smith has scored 1,713 runs in 39 games at an average of 45.07. His highest score this year is 149.
5. Quinton de Kock (South Africa)
The South African has accumulated 1,646 runs at an average of 56.75 in just 30 matches. The left-handed batsman's highest individual score this year is 178.
6. Kane Williamson (New Zealand)
The New Zealand skipper has made 1,476 runs in 31 games at an average of 44.72 with 118 being the highest. Williamson's number would have been better had he not failed badly against India.
7. Dinesh Chandimal (SL)
The Sri Lankan wicketkeeper batsman is highest run getter for his side in this year. In 36 matches the right-handed batsman has scored 1,451 at an average of 38.18.
8. Hashim Amla (SA)
He's another South African in top 10 run getters this year and aggregated 1,430 in 28 matches. He averages 51.07 in this year and 201 is the highest he scored this year.
9. Alex Hales (England)
This right-handed batsman from England has scored 1,426 runs in 32 games with 171 being his highest.
10. Jonny Bairstow (England)
The wicketkeeper batsman is the highest run-getter in Tests in 2016. Bairstow has made 1,362 in 25 games for at an average of 54.48. He has been in great form this year and second leading run getter for England after Hales.