Kohli also completed his individual 5000 runs in the longest version of the game.
While many captains have had three or four Test tons in a five-match series, it is rarity that a batsman has scored three consecutive tons in a three-match series.
Kohli now has 11 international hundreds in a season -- one less than Sachin Tendulkar's 12.
The Indian captain scored 104 not out in Kolkata followed by 213 in Nagpur before completing his hat-trick with his 20th Test hundred in his 63rd game here.
His century off 110 balls and the half-century off 52 balls were his individual fastest landmarks in this format.
The 5000 runs came in 105th innings, which is the fourth fastest among the Indian batsmen after Sunil Gavaskar (95 innings), Virender Sehwag (98 innings) and Sachin Tendulkar (103 innings).