Sri Lanka made a confident start after skipper Karunaratne won the toss and elected to bat first as Fernando hit pacer Khaled Ahmed for two consecutive fours in the second over.
The introduction of spin, however, halted their progress as Nayeem trapped Karunaratne leg before on only his fifth ball.
Karunaratne misjudged an arm-ball and attempted to cut, but the ball was quicker than he had expected.
It hit him on the backfoot and the umpire gave him out after loud appeals from the Bangladeshi fielders. The Sri Lankan skipper unsuccessfully reviewed.
Local boy Nayeem, who came to the side after an injury to regular stalwart Mehidy Hasan, brought Bangladesh their second success in the session when he took an edge from Fernando in the 22nd over.
Wicketkeeper Liton Das completed the catch as Fernando departed after hitting three fours and one six in his brisk innings. Nayeem had figures of 2 for 28 at the break.
A minute of silence was observed before the match in memory of late Australian cricketer Andrew Symonds, who died in a car crash on Saturday.
The Bangladesh Cricket Board said it was "deeply saddened" at the passing of "one of Australia's greatest allrounders in limited overs cricket".
Neutral umpiring also returned for the first time since the onset of the pandemic with England's Richard Kettleborough officiating alongside Bangladesh's Sharfuddoula.