The home team reached 312 for two at close of play on day one, with Sangakkara unbeaten on 130 and Mahela Jayawardene on 13.
Earlier, both Tharanga Paranavitana (100) and Sangakkara toyed with the Indian bowling attack, that looked vapid to say the least, to not only score at a steady rate but also set the tone for the match.
Their second-wicket partnership -- that resulted in 174 runs -- served as a solid build-up to the foundation provided by Paranavitana and Tillekeratne Dilshan (54).
The duo repeated their feat of Galle -- when both had first innings hundreds -- to make most of the opportunity to bat first, having won the toss.
And with Sangakkara looking solid as the day ended, India seemed getting prepared for another busy day at the office on Tuesday.
Sri Lanka will be looking to score enough runs to help them avoid batting a second time, and also wrap up the series.
The home side leads the series 1-0, having thrashed India by 10 wickets in the opening Test in Galle last week.
Morning session (128 runs, 29 overs, 1 wicket):
Sri Lanka won the toss and, not surprisingly, elected to bat first.
"It's usually a fantastic wicket but we have to do some hard work early on and pile on some runs," said Kumar Sangakkara, the captain of the home team.
His opposite number, Mahendra Singh Dhoni, was not at all perturbed.
"There'll be a bit more bounce for the bowlers," he observed.
Sri Lanka had as many as four changes in the side, bringing in Dhammika Prasad, Dilhara Fernando, Ajantha Mendis and Suraj Randiv.
For Randiv, it was a debut Test appearance.
The visitors also had a couple of changes in their line-up, Murali Vijay coming in place of an injured Gautam Gambhir, and Suresh Raina replaced Yuvraj Singh to make his Test debut.
The home team began on a steady note before Dilshan cut loose.
The opener smashed Abhimanyu Mithun through extra cover for his first boundary before hitting four successive fours in the next over by Ishant Sharma.
Ishant was largely ineffective in his opening spell, his figures reading 6-1-39-0. Mithun, on the other hand, was impressive, having Paranavitana in all sorts of trouble early on.
Dilshan was quiet for some time before hitting three boundaries in a Mithun over.
Harbhajan Singh was introduced into the attack in the 18th over and Dilshan cut his first delivery to the point boundary to bring up a well-deserved half century.
The right-hander was dismissed in the very next over, Ojha having him caught by VVS Laxman at short extra-cover.
The opening wicket partnership yielded the home team 99 runs. However, Dilshan's dismissal came against the run of play.
Sangakkara announced his arrival with a couple of boundaries off Ojha.
At lunch (after 29 overs), the hosts were 128 for one.
Post-lunch session (107 runs, 33 overs, no wickets):
Soon after resumption Paranavitana completed his fifth Test fifty with a single off Sehwag.
And while he held fort at one end, Sangakkara cut loose at the other.
It didn't take long for the latter to complete his half-century, a boundary followed by a single to mid-on (off Ishant) ensuring him his second 50-plus score of the series -- after his hundred at Galle.
And the captain's confidence brushed in on Paranavitana as well, the opener coming down the track and smashing Harbhajan for maximum to help his side cross the 200-run mark, while also ensuring the 100-run stand for the second wicket.
At tea (after 62 overs), the hosts were 235 for one, having consolidated their advantage to a considerable extent.
Post-tea session (77 runs, 28 overs, 1 wicket):
It was the same story in the final session as well: the Indian bowlers were as unimpressive as they were in the opening sessions.
However, with the Sri Lankan batsmen preferring to relax vis-a-vis stepping up the pedal, this session witnessed runs coming in a trickle.
Paranavitana, resuming on an unbeaten 89, soon completed his second Test century with three runs off Sehwag.
Three balls later, his captain joined him.
Sangakkara, resuming at 80, reached his 23rd Test hundred -- his fifth as a captain -- in emphatic manner, with a boundary towards mid-on.
However, the visitors struck in the next over, with Ishant inducing an inside edge of Paranavitana's blade that clipped the bails.
The second wicket partnership had yielded Sri Lanka a whopping 174 runs even though the batsman dismissed again blew away an opportunity to build further on his score.
Paranavitana's 100 came off 221 balls and was inclusive of 10 hits to the fence and one over it.
Sangakkara and Jayawardene ensured the home side finished the day without any further loss.