Dilshan made 101, his first Test hundred on home soil in three years, and Sangakkara was unbeaten on 111 as the hosts ended the day on 300 for two after electing to bat on winning the toss.
Skipper Mahela Jayawardene kept Sangakkara company at close on 55, the senior pair having put on 113 so far for the third wicket.
Dilshan reached his 13th Test century by sweeping left-arm spinner Abdur Rehman for a boundary just before the tea interval and celebrated by raising both hands high in the air.
It was Dilshan's first Test century at home since making 123 not out against New Zealand at Galle in August 2009. It was also his first Test hundred since the career-best 193 against England at Lord's in June last year.
Dilshan, however, failed to survive till tea as he was dismissed in the next over, leg-before to off-spinner Saeed Ajmal.
The opener put on 63 for the first wicket with Tharanga Paranavitana and 124 for the second with Sangakkara to lay the foundation for a big first innings total.
Sangakkara continued Dilshan's good work as he moved to his 29th Test hundred with a risky single to mid-off for which he had to dive full-length to make his ground.
The elegant left-hander has so far hit 13 boundaries in his eighth Test hundred against Pakistan, and Jayawardene too settled down to strike eight fours.
Pakistan's bowlers toiled under the hard sun, but found no assistance from either the slow pitch or the umpires.
Seamer Umar Gul deserved better figures than 0-55 from 17 overs as he beat the batsmen on several occasions, but his loud appeals for edged catches or leg-before decisions were turned down.
Ajmal was Pakistan's most successful bowler with 2-81, while left-arm spinner Abdur Rehman returned with 0-89.
Pakistan's lone success before lunch came midway through the morning session when Paranavitana was stumped in Ajmal's first over after making a scratchy 24.
Paranavitana should have gone on 15 when he was beaten by an Gul delivery, but umpire Ian Gould turned down a loud appeal for a catch at the wicket.
Replays showed a thin edge, but Paranavitana survived because the Umpire Decision Review System (UDRS) is not being used in the series.
The left-hander moved to 24 when he was dropped by Azhar Ali at silly point off Ajmal, but was dismissed later in the same over.
Mohammad Hafeez captained Pakistan for the first time in Test cricket after Misbahul Haq was handed a one-match ban for his team's slow over-rate in Monday's final one-day international.
The tourists awarded a Test cap to 32-year-old middle-order batsman Mohammad Ayub, already a veteran of 93 first-class matches in which he has scored 6,074 runs.
The hosts were without frontline seamer Chanaka Welegedara, who woke up with a sore shoulder and was replaced by Nuwan Pradeep.
COMMENTS (1)
Comments are moderated and generally will be posted if they are on-topic and not abusive.
For more information, please see our Comments FAQ
Pakistan's bowlers have lost it cutting edge.