The all-rounder smashed eight sixes and six fours in a game-changing innings of 86 from 75 balls, which rescued the Division One leaders from a perilous 228 for eight in their first innings and allowed them to post 321.
Off-spinner Archie Vaughan finished with six for 102, while Jack Leach claimed four for 105 but Surrey had gained a slender advantage of four runs and soon built on it, reducing their opponents to 194 for nine by stumps on a rain-interrupted afternoon, which saw Shakib Al Hasan take four for 83.
Worcestershire all-rounder Tom Taylor produced a deadly spell with the ball on his way to career-best figures as Warwickshire were forced to follow on at New Road.
Taylor picked up five wickets in six overs in the morning on his way to figures of six for 28 as Warwickshire were bowled out for 128 in 42.2 overs in their first innings.
The 29-year-old added one more in Warwickshire's second innings when they followed on 179 runs in arrears to take his tally to 23 wickets in five games for Worcestershire.
The visitors provided sterner opposition second time around with captain Alex Davies and Will Rhodes both hitting half centuries.
But Matthew Waite, Ethan Brookes and Taylor picked up a wicket apiece to leave Warwickshire still eight runs in arrears as they closed on 171 for three.
Jamie Porter and Simon Harmer shared nine first-innings wickets as Essex skittled Nottinghamshire for 93 on a morning of utter carnage in Chelmsford.
Seam bowler Porter took his third five-wicket haul of the season, and second in consecutive matches, to finish with five for 35 - his best figures of the campaign that included three wickets in five balls.
When they followed on, 364 runs adrift, Nottinghamshire captain Haseeb Hameed led the fightback with an unbeaten 100 and put on an unbroken 131 with Joe Clarke (62 not out) for the third wicket. Nottinghamshire were 180 for two, still 184 runs from making Essex bat again, at the close.
Durham maintained their complete domination of their match against Lancashire on a day when David Bedingham became the highest individual scorer in the county's first-class history.
Bedingham's 279 surpassed Martin Love's 273 against Hampshire in 2003 and his innings was the bedrock of his team's 573 for nine declared.
Facing a deficit of 345, Lancashire ended the day poorly placed on 155 for four, with Matthew Potts taking three of the wickets. Keaton Jennings' side therefore need another 190 runs to avoid their fourth innings defeat of the season.
Kent were battling hard to save their Division One status after being forced to follow-on by Hampshire, on a rain-affected third day at Canterbury.
The hosts could be relegated by the end of this round of fixtures, but they were 70 without loss in their second innings, still 126 behind, with Tawanda Muyeye unbeaten on 46 and Ben Compton 24 not out.
Earlier, Kyle Abbott took five for 46 as Kent were dismissed for 207 in their first innings, Compton their highest scorer with 51.
Torrential rain fell during an already truncated evening session and play was eventually abandoned for the day at 5.26pm.
Sussex are closing in on a return to Division One after wrapping up their seventh win of the season with a day to spare against Glamorgan.
Having established a first-innings lead of 305 they bowled Glamorgan out for 218 to win by an innings and 87 runs at Hove.
Yorkshire also moved a step closer to securing promotion after completing a three-day victory over Leicestershire despite more time lost to the weather.
The home side, who had trailed by 281 on first innings after being dismissed for 98, were bowled out for 209 second time around as all-rounder George Hill played a starring role.
The 23-year-old seamer took the last half-dozen wickets to fall for season's-best figures of six for 59, handing Yorkshire a fourth win in five matches by an innings and 72 runs.
Debutant Archie Bailey led the rout as Gloucestershire bowlers sparked a dramatic Middlesex collapse on an eventful day three at Lord's.
Bailey took four for 30 as the hosts crumbled from 122 to two to 165 all out, leaving Gloucestershire 234 to win on day four.
Leg-spinner Yuzvendra Chahal starred with career-best match figures of nine for 99 as he bowled Northamptonshire to their first victory of the season inside three days against Derbyshire.
The experienced India white-ball international followed up his five-wicket tally from the first innings with four for 54 to demolish Derbyshire for just 132 second time around at Wantage Road.