The left-handed duo, who made hundreds in their victorious first Test in Galle, put on 174 for the second wicket to help the hosts pile up 312-2 by stumps at the Sinhalese Sports Club.
Paranavitana, a 28-year-old playing his 12th Test, revelled in the familiar environs of his home club to follow his maiden century at Galle with a fluent 100.
Skipper Sangakkara returned unbeaten on 130, his 23rd Test hundred, after he won the toss and elected to take first strike in typically good batting conditions at the SSC.
Both players reached their centuries in the same over, the 71st of the innings, as Paranavitana took three runs off a Pragyan Ojha misfield and Sangakkara lofted Virender Sehwag for a boundary.
Paranavitana was dimissed in the next over, bowled by seamer Ishant Sharma off the inside edge, but former captain Mahela Jayawardene kept Sangakkara company at stumps on 13.
The easy-paced wicket left India’s bowlers facing an uphill struggle in hot and humid weather after captain Mahendra Singh Dhoni lost his seventh straight toss.
Young seamer Abhimanyu Mithun went for 0-75 in 17 overs and leading spinner Harbhajan Singh gave away 61 runs in 22 wicketless overs.
India, trailing 1-0 in the three-match series, suffered twin blows when opener Gautam Gambhir and middle-order batsman Yuvraj were ruled out of the key match.
Gambhir failed to recover from a knee injury, while Yuvraj developed high fever overnight.
The duo were replaced by left-hand batsman Suresh Raina, making his Test debut after playing 98 one-day internationals, and opener Murali Vijay.
Sri Lanka changed the entire frontline bowling attack that won them the first Test by 10 wickets.
With Muttiah Muralitharan now retired and fast bowler Lasith Malinga injured, the hosts replaced them with spinner Ajantha Fernando and Dilhara Fernando.
Also out were left-arm spinner Rangana Herath and seamer Chanaka Welegedara. Their places went to debutant off-spinner Suraj Randiv and fast bowler Dammika Prasad.
Paranavitana and Dilshan gave Sri Lanka a flying start by hammering 99 for the first wicket in 18 overs.
Dilshan smashed 54 off 42 balls before he was caught at short extra-cover by Venkatsai Laxman off left-arm spinner Ojha to provide India their only success of the morning session.
Dilshan hit Sharma for four consecutive boundaries and then took three in one over from Mithun.
When Paranavitana lofted Harbhajan for a six over mid-wicket, he brought up both the century partnership with Sangakkara and the 200 of the innings.
Paranavitana also struck 10 boundaries.