Dhawan was positive from the outset as India opted to bat first.
KL Rahul also joined the party as India got off to a flier.
Both the openers went on to reach their respective half-centuries before the lunch break.
The runs kept coming thick and fast as Sri Lanka ran out of ideas.
KL Rahul earned the record of becoming the first India (and sixth overall) to hit seven successive half-centuries in Tests but fell short of the three-figure mark once again.
Shikhar Dhawan went on to hit his sixth Test century
Malinda Pushpakumara followed up his wicket of KL Rahul by dismissing Dhawan, much against the run of play
Lakshan Sandakan ended Cheteshwar Pujara's stay early to reduce India to 229 for 3.
A straight delivery from Pushpakumara kept low and sneaked past an advancing Rahane to crash onto the stumps and put India in a bit of trouble
Virat Kohli looked solid at the start but was undone by Sandakan and fell for 42.
Ashwin was the last wicket to fall in the day as India ended the first day on 329 for 6.