Padikkal, who had struck a hundred in Galle, produced another composed and elegant innings of 117. However, Sri Lanka will rue two early missed chances that could have changed the complexion of the day.
The left-hander was dropped at point by Sonal Dinusha off spinner Prabath Jayasuriya before Sri Lanka captain Dhananjaya de Silva spilt another opportunity at slip two overs later.
Dhruv Jurel was batting on seven with debutant Saransh Jain on four at stumps.
India captain Shubman Gill, having elected to bat as his side chase a 2-0 series sweep and valuable World Test Championship points, also contributed a calm half-century.
KL Rahul made 18 before he slashed at a Lahiru Kumara delivery and was caught behind. Sri Lanka struck again when Asitha Fernando (3-46) bowled Yashasvi Jaiswal for 45.
The bowler and the batter briefly engaged in an eye-to-eye confrontation and had to be separated.
Gill had arrived under scrutiny after scoring only 24 runs in the first test, but responded with a measured 50. Fernando removed Gill, who edged to Niroshan Dickwella. The wicketkeeper initially spilt the chance but recovered quickly to complete the catch at the second attempt.
Padikkal's innings, featuring 12 boundaries, finally ended when Keshara Nuwantha beat his tentative push and knocked back the off stump. By then, however, the opener had laid a solid platform for India.
Ravindra Jadeja made 43 before Fernando bowled him after the batter shouldered arms to an incoming delivery in the final over of the day.
India's stumper-batter Rishabh Pant retired hurt on three after being struck on the forearm by a short ball from Kumara.
