Sri Lanka's bowlers were in the wickets on Friday ahead of next week's first Test against England at Lord's.
The tourists reduced Northamptonshire to 146 for five at stumps on the second day of four in reply to Sri Lanka's 558 for eight declared -- a deficit of 412 and with the hosts needing 263 more runs to avoid the follow-on.
Rob Keogh was 26 not out and Matthew Spriegel 11 not out.
Earlier, acting Sri Lanka captain Lahiru Thirimanne called a halt to a first innings where he top-scored with a career-best 156 and opener Kaushal Silva made 152 not out before retiring at a sun-drenched Northampton.
Northamptonshire, struggling at the foot of the First Division of the County Championship table with five defeats from six matches, had been blasted by their own chief executive after collapsing to a 271-run defeat by Yorkshire last time out.
Their innings began badly when opener James Kettleborough's first-class debut saw him lbw for a golden duck to Chanaka Welegedara. The impressive Nuwan Pradeep then took his 100th first-class wicket when he had Northamptonshire captain Stephen Peters caught behind with a lifting delivery to leave the hosts 32 for two.
Welegedara, Pradeep and Dhammika Prasad were potentially involved in a three-way bowl off for a place at Lord's, with Sri Lanka set to recall captain Angelo Mathews, a seam-bowling all-rounder, Shaminda Eranga and spinner Rangana Herath to their side for the first Test.
South Africa's Richard Levi -- currently on a contract just to play county limited overs matches for Northamptonshire -- kept Sri Lanka at bay with a dashing fifty off 40 balls.
Meanwhile Scotland captain Kyle Coetzer cover-drove Prasad for four and uppercut him for six over third man off successive deliveries. But to the very next ball Coetzer (27), chipped a return catch which Prasad held at the third attempt. Levi, who at least offered belligerent resistance, then pulled Prasad straight to Pradeep at deep square leg on 64. And when wicketkeeper Ben Duckett was bowled by trying to whip a turning delivery from off-spinner Dilruwan Perera to the legside, Northamptonshire had slumped from 97 for two to 113 for five.
Sri Lanka were 358 for three overnight against a Northamptonshire side showing six changes from the team that played Yorkshire.
Among those missing were former South Africa all-rounder Andrew Hall, Pakistani seamer Mohammad Azharullah, New Zealand paceman Ian Butler, and fast bowler Maurice Chambers.
Silva, before play resumed Friday, retired undefeated on 152 with what Sri Lanka's manager said was a stomach illness. He batted for just over six hours, facing 260 balls with 21 fours and two sixes. Left-hander Thirimanne resumed on 120 not out, having been dropped off his first ball Thursday by Duckett. He had just surpassed his previous first-class best of 155 not out, made in a Test against Bangladesh last year, when he was bowled trying to slog-sweep left-arm spinner Spriegel.
Thirimanne's near five-hour innings saw him face 221 balls including 14 fours and two sixes. Spriegel then had a personal return of two for none in eight balls when he bowled Dinesh Chandimal on the sweep for 47. But Perera went to a 63-ball fifty with a six, four and a six off three successive deliveries from part-time spinner Keogh before he holed out off Steven Crook.