New Sri Lanka captain Tillakaratne Dilshan helped himself to a century as the tourists piled on the runs against Middlesex on day two of their opening three-day tour match at Uxbridge.
Middlesex resumed on 321-5, and seamer Chanaka Welegedara took two wickets before their innings closed on 360-8.
Dilshan (123) and his opening partner Tharanga Paranavitana (103) added 209 before both batsmen retired.
Sri Lanka declared behind on 309-2, and Middlesex reached 26-1 by the close.
It leaves the hosts 38 runs ahead going into Monday’s final day.
Although England Test skipper Andrew Strauss had hit a hundred in Middlesex’s first innings on Saturday, Dilshan - who will be his opposite number in the Test series which begins in Cardiff on 26 May - matched him by reaching three figures in his first game since being appointed captain last month.
The home side only had seven overs in the morning before they were forced to end their innings after 100 overs, but added 39 to their total as left-arm seamer Welegedara, who will probably share the new ball with Dilhara Fernando in the Test side, picked up two of the three wickets to fall.
Middlesex will rue dropping Dilshan twice, with former England one-day spinner Jamie Dalrymple failing to hold a low chance at second slip when the Sri Lanka skipper had made 10.
Strauss also dropped Dilshan when diving to his right at point - but by then, the opener had 114 after feasting on Middlesex’s inexperienced bowling attack. Dilshan soon retired - with his score at 123 from 134 balls, including 14 fours and a straight six - to give his team-mates some time in the middle.
Left-hander Paranavitana, Dilshan’s likely opening partner in the Tests, did not match his captain’s strike rate, taking 143 deliveries for his 103 before retiring with the score on 250.
Middlesex’s bowlers failed to take a wicket in their 69 overs they spent in the field, and even with the openers gone, Lahiru Thirimanne and Dinesh Chandimal pressed their claims for a Test place with an unbeaten stand of 59 before Dilshan called them in.
Debutant left-arm seamer Gurjit Sandhu, cut for three fours in his first over by Dilshan, and left-arm spinner Tom Smith suffered particular punishment as the tourists made hay. Paceman Suranga Lakmal picked up the wicket of Sam Robson, who played on to his stumps for a duck, before the close, when Strauss was unbeaten on 19.