Somerset 424 (Abell 116, Gregory 77, Aldridge 41, Bess 4-68) and 225 for 6 (Bartlett 88*) lead Yorkshire 276 (Kohler-Cadmore 100) by 373 runs
George Bartlett's first LV= Insurance County Championship half-century of the season cemented a strong Somerset position on the third day of the match with Yorkshire at Taunton.
Having seen hopes of a big summer hit by an early shoulder injury, the 24-year-old top-scored with 88 not out as his side ran up 225 for six in their second innings to lead by 373. Tom Lammonby made 46.
Tom Kohler-Cadmore had earlier been dismissed for 100 in a Yorkshire first-innings total of 276, replying to Somerset's 424. Jonathan Tattersall contributed 43, while Kasey Aldridge claimed three for 23 and Jack Brooks three for 73.
Much depended on Kohler-Cadmore, unbeaten on 68 against the county he will join next season, when Yorkshire began the day on 167 for four in their first innings, 257 runs behind.
Matthew Waite again offered solid support as the pair extended their fifth-wicket stand to 65.
It was broken with the total on 194 when Waite, on 21, was caught at short mid-wicket by the shrewdly-placed Bartlett off Aldridge.
Kohler-Cadmore was becalmed in the nineties, partly by Jack Leach's miserly spell from the River End, but reached a largely untroubled hundred off 199 balls, guiding a Lewis Gregory delivery to third man for two.
The 27-year-old, who had struck four sixes and nine fours, received warm applause from Somerset fans, as well as those from Yorkshire, their appetites whetted for next summer.
It took the introduction of part-time off-spinner Matt Renshaw shortly before lunch to undo Kohler-Cadmore, beaten by a ball that turned and trapped lbw on the back foot.
At the interval, the scoreboard read 228 for six. With six runs added, the second new ball became available.
Tattersall's important 108-ball innings ended when he edged Marchant de Lange to 18-year-old wicketkeeper James Rew, who claimed his maiden first class catch for Somerset.
Dom Bess drove a catch to cover off Aldridge and when Jordan Thompson was bowled be de Lange, Yorkshire still required one run to avoid the possibility of following on.
A Shannon Gabriel single averted that danger, although Somerset may well have batted again anyway, and the deficit was 148 when he was last man out, skying a catch off de Lange.
Openers Renshaw and Lammonby wasted no time building on Somerset's advantage, taking their second innings score to 57 by tea, Lammonby lofting sixes off Thompson and Waite.
Their stand had extended to 65 when Renshaw made a hash of an attempted reverse sweep off Jack Shutt and Kohler-Cadmore held a simple chance at slip.
Undeterred, Lammonby soon cleared the ropes again, dispatching Bess over long-on. Another six followed off Shutt, but the next ball saw the left-hander get a leading edge to cover where Harry Brook pouched the catch.
Lammonby had made his runs from just 47 balls and Somerset led by 236. Bartlett joined the sixes spree, lifting Shutt over wide long-on.
First innings centurion Tom Abell made only ten before falling to another Kohler-Cadmore slip catch, attempting to cut a ball from Bess.
But Lewis Goldsworthy helped Bartlett add 48 in sensible fashion before a lapse in concentration on 18 saw him slog-sweep a catch to square leg off Bess. At 162 for four, Somerset led by 310.
Bartlett went to fifty off 86 balls, with 2 sixes and 4 fours, a timely reminder of the form that saw him first establish a regular place in Somerset's red ball side in 2019.
Rew and Gregory fell cheaply, but two more Bartlett sixes off Matthew Revis left the hosts reached well placed for a final day declaration.