Sri Lanka's Rangana Herath picked up an early wicket to put South Africa under pressure as the visitors, chasing 369 to win the second Test, finished day four on 38-1.
Opening the bowling, the left-arm spinner had opener Alviro Petersen caught by Kithruwan Vithanage without scoring with the total on four.
If we can keep the pressure up ... and if we can get some early wickets, maybe three in the first session, it will set us up nicely.
Quinton de Kock batting on 21 and Dean Elgar (13) took a bad light offer and left the field needing to score 331 in three sessions to win the match on Monday or bat out the day for a draw and clinch the two-match series 1-0.
Sri Lanka earlier declared their second innings on 229-8.
Sangakkara (72) and captain Angelo Mathews (63 not out) made hasty half-centuries to increase Sri Lanka's lead and give them hope of levelling the two-match Test series on a turning Sinhalese Sports Club pitch.
Sangakkara took 90 balls and hit three boundaries while sharing 81 runs for the fourth wicket with Mathews, who faced 83 deliveries and hit two sixes and two boundaries.
Fast bowler Morne Morkel returned 4-45 for South Africa and in the process reached his 200th test wicket. Dale Steyn and Imran Tahir picked up two wickets each.
Resuming the fourth day on 11-0 Sri Lanka reached 108-3 at lunch but heavy rain during the interval caused a 30-minute delay in starting the second session.
Sri Lanka's urgency
Resuming under cloudy conditions, Sangakkara and Mathews showed urgency in scoring, taking quick singles and twos. Sangakkara was dismissed trying to charge Morkel and was caught behind by de Kock.
Both Vithanage (7) and Niroshan Dickwella (16) fell going for big shots. The hosts lost three wickets in the morning session while adding 97 runs.
Upul Tharanga was out for 30, caught behind off Steyn, while Kaushal Silva was dismissed for 26 after spooning a catch to Vernon Philander off Morkel.
Mahela Jayawardene attempted to sweep leg spinner Imran Tahir and was caught brilliantly by Elgar who dived across the pitch from silly-mid-on.
After three interruptions on Sunday, the match is scheduled to start 30 minutes early on Monday with a minimum of 98 overs to be bowled.