The hosts, set a target of 352 runs, plundered 115 of them off 26 overs in the afternoon session to go to tea on the fourth day at 163-3 on Monday.
Sri Lanka need 189 runs with seven wickets in hand to sweep the series 2-0 after thrashing South Africa by an innings and 153 runs in the first Test at the Sinhalese sport club (SSC).
Captain Mahela Jayawardene remaind unbeaten on 25 after being dropped by Herschelle Gibbs at gully off Andrew Hall when he was on two.
Tillekeratne Dilshan was the other batsman at the crease on 17, having put on 42 for the fourth wicket with his captain.
Left-handed Jayasuriya hit nine boundaries and three sixes as Sri Lanka tried to surpass their most successful chase of 326-5 against Zimbabwe at the SSC during the 1997-1998 season.
Earlier, Muttiah Muralitharan equalled his own world record of four consecutive 10-wicket hauls as South Africa were bowled out for 311 in their second innings within the first hour.
Sri Lanka lost opener Upul Tharanga in Makhaya Ntini's second over, edging a rising ball to Gibbs in the slips.
Jayasuriya and Kumar Sangakkara added a quickfire 82 for the second wicket with a flurry of strokeplay, especially against veteran seamer Shaun Pollock.
Jayasuriya smashed 15 runs in one Pollock over, including a six over the straight boundary. Two overs later the batsman repeated the stroke and this time the ball sailed out of the ground.
Pollock, who began the Test on 394 wickets, finally tasted success for the first time in the match after 21 unsuccessful overs when Sangakkara drove a short ball to Hashim Amla at point.
Left-handed Sangakkara made 39 that included four boundaries in one over from Dale Steyn.
Jayasuriya pulled another six off left-arm spinner Nicky Boje before falling to the same bowler in the next over, caught low at short-leg by Amla.
Ntini gave the South African camp a scare when we walked off before lunch after bowling the second ball of his sixth over with a suspected hamstring tear. Steyn completed the over, the last before lunch.
Ntini, wearing a support strap on his left thigh, returned to the field midway through the afternoon session, bowled two overs at half pace and left the field again.
Muralitharan, who claimed five wickets in the first innings, finished with 7-97 in the second by taking all the three remaining wickets when the tourists resumed on 257-7.
Muralitharan had Boje caught behind for 15, trapped Steyn leg-before for zero and dismissed Mark Boucher to a catch at short-leg by Dilshan.
Boucher made 65, adding 29 valuable runs for the last wicket with Ntini, who remained unbeaten on five.
Muralitharan's 12-225 here follows his match haul of 10-172 in the previous Test and 11-132 and 10-115 against England in Nottingham and Birmingham earlier in the year.
The 34-year-old's earlier feat of four successive 10-wicket hauls came at home during the 2001-2002 season when he took 11-196 against India, 10-111 against Bangladesh and 11-170 and 10-135 against the West Indies.
Muralitharan now has 657 wickets, second behind Australian record-holder Shane Warne's tally of 685, following his 18th 10-wicket success and 56th five-wickets-in-an innings haul.
He ended the short two-match series with 22 wickets.