Kusal Perera made his maiden Test century as Sri Lanka laid a solid foundation on day one of the first Test against Heath Streak's Zimbabwe.
The tourists took advantage of winning the toss to underline their status as favourites in the two-match series, closing Saturday's play in Harare on 317-4.
Opening pair Dimuth Karunaratne (56) and Kaushal Silva (94) set the tone by putting on 123 for the first wicket as Zimbabwe - marking their 100th Test - toiled in Streak's first game at the helm.
Karunaratne eventually fell victim to a short legbreak delivery from Graeme Cremer (3-82), chipping tamely into the hands of Tino Mawoyo.
That setback did little to hinder Sri Lanka's progress and they were almost at the 200 mark before Silva missed out on back-to-back Test centuries when he mishit a full toss to mid-on.
They accelerated dramatically after tea, clocking up 56 runs in eight overs, including six fours and a six in a 10-ball spell as Perera and Kusal Mendis (34) started to really enjoy themselves.
That fun came to an end for both before the close. Cremer's enticing delivery kept low and nicked the edge of Mendis' bat, leaving wicketkeeper Peter Moor to collect.
Perera brought up his landmark with a four off the last delivery of the following over, going at just shy of a run a ball, and got to 110 before Cremer struck again.
Sri Lanka will resume on Sunday with Upul Tharanga and Dhananjaya de Silva at the crease, on 13 and 10 respectively.