The victory was widely reported as Scotland’s first over a full member of the International Cricket Council - one of the sport’s leading 10 Test nations - in any format.
Chasing a 50-over target of 287, captain Coetzer made 118, while his opening partner Cross finished unbeaten on 106 in the 42nd over in Beckenham.
Sussex bowler Stuart Whittingham picked up three wickets on his Scotland debut.
"It's a massive step forward for Scottish cricket," Cross told BBC Scotland after making his highest score in international colours.
"It was a convincing victory against a side with plenty of Test match experience.
"We dominated and ran out comfortable winners."
Con de Lange was the other not out Scottish batsman on 19, while Callum McLeod (2) and Richie Berrington (19) added to the winning tally of 291.
Coetzer's 118 came from 84 balls, with Cross adding: "Kyle made it look easy. He took all the pressure off me."
Dinesh Chandimal top-scored for Sri Lanka on 79, with Chamara Kapugedera reaching 71 from 50 balls and opener Kusal Perera making 57.
Alasdair Evans joined Whittingham in taking three wickets, with Chris Sole bagging a brace, while 24-year-old wicketkeeper Cross made it a day to remember with four catches behind the stumps.
The teams meet again at the same venue on Tuesday.
Sri Lanka are warming up for the Champions Trophy, held from 1-18 June, where they will play India, Pakistan and South Africa in Group B.