Dilshan made 109 as Sri Lanka, seeking a win to draw the series 1-1, battled a wicket with turn and bounce to pile up 366-8 by close of the opening day's play at the Brabourne stadium.
All-rounder Angelo Mathews returned unbeaten on a career-best 86 as the tourists grabbed the chance to have first strike for the only time in the series after skipper Kumar Sangakkara called correctly.
India, who won the second Test in Kanpur by an innings and 144 runs after the first match in Ahmedabad ended in a high-scoring draw, will dislodge South Africa as the top-ranked Test side if they win the series 2-0.
Off-spinner Harbhajan Singh picked up four wickets and left-arm slow bowler Pragyan Ojha two as the vintage stadium, hosting a Test after 36 years, laid out a sporting wicket to provide an absorbing day's cricket.
Dilshan, 33, dominated the day with 10 boundaries and two sixes in his 11th career Test century and the second in the series after making 112 at Ahmedabad.
He anchored t