That set Sri Lanka a target of 213, which they achieved for the loss of six wickets to taste victory ahead of another tour match against the England Lions later in the week at Derby.
The victory was all the more impressive given that Kumar Sangakkara and Mahela Jayawardene are yet to feature due to Indian Premier League commitments, although new captain Tillakaratne Dilshan settled into his role nicely.
He scored 123 in 134 balls before retiring, as did Tharanga Paranavitana having made 103 in 146 balls before Sri Lanka declared on 309 for two.
That was in reply to Middlesex's 360 for eight, in which England Test captain Andrew Strauss made his frist appearance of the summer by scoring 151.
Daniel Housego weighed in with 104 but the game turned in the third innings, in which left-arm quick Chanaka Welagedara and spinner Ajantha Mendis took three wickets apiece to bundle the home side out in 48.5 overs.
Despite giving time in the middle to the players that hadn't batted in the first innings, Sri Lanka reached their target with five overs to spare.
Thilan Samaraweera led the way with 49 while Dinesh Chandimal (39), Lahiru Thirimanne (33) and Paranavitana (29) also played their part.
The four-day game against the England Lions gets underway on Thursday 19th May.