Opener Rory Burns hit a century to boost Surrey's promotion push and their hopes of beating Leicestershire in the LV= County Championship Division Two game at Grace Road.
Although they were unable to force the follow-on, Surrey added 217 for four to their first-innings lead of 107 to leave Leicestershire trailing by 324 runs at the end of the third day.
That could set up an exciting final day, with Surrey looking to close the gap on leaders Worcestershire, who lost to Gloucestershire today, and Leicestershire desperate for their first championship win for nearly two years.
Burns scored 102 and shared an opening partnership of 103 with Zafar Ansari, who made 43 before becoming one of Jigar Naik's three victims.
Off-spinner Naik bowled impressively, keeping one end going as Surrey chased quick runs after bowling out Leicestershire for 373.
Burns reached his fifty off 91 balls with eight fours, and the century stand arrived in the 31st over.
But Ansari was then trapped lbw by Naik, who followed that up by tempting Vikram Solanki into a lofted off drive that provided an easy catch for Charlie Shreck.
Tillakaratne Dilshan struck a bright and breezy 35 but was completely deceived by the flight of a Naik delivery and stumped.
— Surrey Cricket (@surreycricket) August 17, 2014
Burns brought up his century off 182 balls with 11 fours before edging a ball from Shreck to O'Brien.
A series of short stoppages for bad light and showers interrupted Surrey's progress, with eight overs lost in total.
Naik finished with 3-61 off 23 overs and the game is nicely poised going into the final day.
The first target for Leicestershire at the start of today's action was to score the 28 runs required to avoid the follow-on - and they accomplished that in nine overs.
Nathan Buck set the tone with two excellent off-driven boundaries off Tim Linley and, even when the second new ball was taken, Surrey were unable to make the breakthrough they needed.
Niall O'Brien, unbeaten on 62 overnight, produced a glorious cover drive for a four off Stuart Meaker and a quick single by the eighth-wicket pair took the hosts to 331 to ensure Surrey had to bat again.
With the pressure off, the batsmen became more expansive in their shot selection and Buck was trapped lbw by Chris Tremlett going for another drive. He had contributed 26 to a stand of 42.
Ollie Freckingham and Shreck both fell cheaply to Linley, leaving O'Brien 89 not out off 172 balls with 11 boundaries, as Leicestershire added 70 runs in 20 overs to their overnight score of 303 for seven to collect four batting points.
Tremlett, Linley and Gareth Batty finished with three wickets apiece.