Having bowled out Bangladesh for 89 on the opening day, Sri Lanka went to lunch on the second day at 352-5, an overall lead of 263 runs with five wickets in hand.
Lanky left-hander Vandort, a late replacement for the injured Upul Tharanga, hit 117 with the help of nine boundaries and three sixes.
Jayawardene, who had retired hurt the previous day on 93 due to leg cramps, returned at the fall of Vandort's wicket and duly completed his 17th Test century.
The captain was unbeaten on 126 at the break with wicket-keeper Prasanna Jayawardene on eight.
Vandort, who resumed at his overnight score of 87, hit two consecutive sixes off left-arm spinner Abdur Razzak to move to 99 and then clipped two runs to mid-wicket in the same over to reach his third Test century.
Vandort put on 117 for the fourth wicket with Tillakaratne Dilshan when he was caught in the leg trap by Shahriar Nafees off spinner Mohammad Rafique.
Bangladesh earned a lucky break when Dilshan was run out for 79 after Mahela Jayawardene declined his call for a second run.
Sri Lanka are expected to look for quick runs after the break before Jayawardene declares later in the day to give his bowlers another shot at the tourists.
Bangladesh lasted just 32.3 overs after being sent in to bat on the first day with Muttiah Muralitharan taking five wickets for 15 runs after seamer Dilhara Fernando had destroyed the top order with three wickets.
Bangladesh play three Tests and as many one-day internationals on the five-week tour.