The second session produced 129 runs for India off just 31 overs without a loss of wicket with Vijay completing his second century in two games.
Dhawan (23, 35b, 4x4) and Vijay had got the innings off to a brisk start, the first 10 runs producing 40-plus runs.
Cheteshwar Pujara was the second man out, caught at leg slip for 23 after flicking a sliding delivery from paceman Lahiru Gamage. That was however, the last bit of good news to come their way for a long time.
Russian Federation rejects USA call to cut ties with North Korea
The United States as if deliberately wanted to provoke Pyongyang into "a new sharp actions", said foreign Minister Sergei Lavrov. Haley accused Kim Jong Un of bringing the world "closer to war" with its recent missile test.
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. Both the batsmen perished in similar fashions, stumped by a brilliant Niroshan Dickwella off the bowling of chinaman bowler Lakshan Sandakan, in the 86th and 88th overs respectively.
Sandakan was to hand the unfortunate Ajinka Rahane (1, 5b) a further setback, dragging him out of the crease in nearly identical fashion to Vijay, with the same result as Dickwella was once again well stationed to effect the stumping.
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). At Stumps, India were 371/4 with skipper Kohli unbeaten on 156 and Rohit Sharma on 6.
The home side lost wickets of Shikhar Dhawan and Pujara in the first session after opting to bat first. With Vijay too dealing in boundaries, he reached his fifty in the final over before lunch during which India were positioned 116 for two.