England were 259-6 in reply to Sri Lanka's 236, a slender advantage of 23 runs, when a combination of bad light and rain forced an early close to the second day of the three-Test series.
Smith, promoted up the order to No 6 in the absence of injured captain Ben Stokes, was 72 not out -- the 24-year-old wicketkeeper's third fifty in his four Tests.
Once again he demonstrated his ability to both support an established batsman and keep the runs coming batting with the lower order.
Together with Harry Brook (56) and Chris Woakes (25), Smith shared stands of 62 and 52 respectively before both batsmen were bowled by superb deliveries from left-arm spinner Prabath Jayasuriya, who enjoyed an economical return of 2-58 in 21 overs.
"I think we're in a decent position," England assistant coach Marcus Trescothick told reporters after stumps. "Being ahead of their total with four wickets left, we're pretty pleased with where we are."
Meanwhile former England opening batsman Trescothick praised Smith's temperament by saying: "We talk about being positive and aggressive and putting teams under pressure, but the skill is to identify moments when it's the right time."
After rain washed out Thursday's morning session, England were faltering at 67-3 in the 15th over, with Asitha Fernando leading the way during a haul of 3-68 in 14 overs.
'Asitha Fernando the one to watch'
Sri Lanka fast-bowling coach Aaqib Javed, said Asitha Fernando reminded him of his fellow former Pakistan quick Mohammad Asif.
"I said to him (Asitha) I saw the same quality as Mohammad Asif, the ability to make the ball move both ways with very little change in wrist position.
"A good length that is the key. If he is hitting regularly on that spot, I think Asitha is the one to watch."
Sri Lanka had collapsed to 6-3, losing their first three wickets for no runs in 10 balls on Wednesday.
But they still had runs to play with after captain Dhananjaya de Silva made 74 after winning the toss, with Milan Rathnayake's 72 a new record for the highest score by any Test debutant batting at No 9.
Shortly after play resumed Thursday under grey skies, Asitha Fernando had left-hander Ben Duckett lbw for 18 on review of a decision by umpire Paul Reiffel.
That wicket came two balls after Dan Lawrence, opening in place of the injured Zak Crawley, had successfully denied Asitha Fernando an lbw by challenging former Australia paceman Reiffel's original verdict of out.
Asitha Fernando's day got even better when he dismissed Ollie Pope, captaining England for the first time after Stokes was ruled out by a torn hamstring, for six with a ball that nipped back through a gap between bat and pad.
Pope's exit, however, had brought in Root, with the former England captain boasting a superb record against Sri Lanka of more than a 1,000 runs, including four hundreds, in 11 previous Tests at an average of nearly 60.
Asitha Fernando, though, ended a promising stand of 58 when Root, who had made a typically elegant 42, inside-edged an intended drive, with Chandimal diving forward to hold a fine low catch.
New batsman Smith, however, drove Jayasuriya for a straight six before Brook completed a 59-ball fifty.
But on the same ground where Shane Warne bowled Mike Gatting with the 'Ball of the Century' in 1993, Jayasuriya made a bid for the modern-day equivalent by snaring Brook in stunning style.
The 25-year-old rising star had added just three runs to his tea score of 53 not out when he was turned inside out by a ball from left-armer Jayasuriya that dipped in on the line of middle and leg stumps before spinning sharply and bouncing to clip the top of off stump.
Brook's exit left England 187-5 and Woakes fell in similar fashion when clean bowled by another hard-spun delivery from Jayasuriya.