With promotion already secured last week without bowling a ball when Leicestershire failed to get a batting point against Sussex, Durham required a maximum of five points to clinch top spot.
The three secured for dismissing Worcestershire for 313, plus the ones dropped by the home side for batting, ensured Durham finished in pole position to be back in Division One for the first time since 2016, when they were relegated over financial issues.
Ben Raine and Bas de Leede finished with three wickets each, while captain Brett D’Oliveira was Worcestershire’s top scorer with 63 off 75 balls.
Title rivals Essex had cut into Surrey’s 18-point lead by taking two more bonus points against Hampshire.
Northamptonshire – who will be relegated if either Middlesex or Kent win – put the pressure on as they reduced Surrey to 79 for six before a spirited response from Foakes and Overton, who made an unbeaten half-century, helped move them on to 158 when bad light and rain ended play early.
Surrey still trail by 199, but a draw still looks the most likely outcome heading into the final day’s play.
At Chelmsford, Hampshire batter Tom Prest scored his maiden Championship century to frustrate title hopefuls Essex despite a five-wicket haul for Simon Harmer.
Prest scored an unbeaten 102 to guide Hampshire past the follow-on score with vital contributions from openers Toby Albert (39), Fletcha Middleton (47), James Vince (46) and Keith Barker (42).
South African Harmer claimed five for 143, but Hampshire ended the day on 322 for eight, now 125 runs adrift and with potential to set up a result on the final day.
Somerset’s Tom Kohler-Cadmore celebrated his England call-up with a savage assault on Kent’s injury-hit bowling attack on day three at Taunton.
Kohler-Cadmore – set to feature in the one-day international series against Ireland – hit eight sixes in a rapid 68 as the hosts extended their first-innings total to 404 for four before rain washed out the last two sessions.
Lewis Goldsworthy marked his first Championship appearance of the season with 122 and Andy Umeed contributed 49 as Somerset increased the pressure on relegation-threatened Kent, who have secured just one bonus point, before play was eventually abandoned at 4.50pm.
At Lord’s, another half-century from Sam Robson helped keep alive relegation-battlers Middlesex’s hopes of a draw on a truncated day three against Warwickshire.
Former England opener Robson made 51 not out as the hosts reached 96 for one in their second innings, still 98 short of making Warwickshire bat again.
Earlier, Will Rhodes completed his ninth first-class hundred, but Danny Briggs fell one short as Warwickshire made a first innings total of 315. Tim Murtagh, in his final game at Lord’s, finished with six for 83.
Lancashire made 225 for six against Nottinghamshire on a rain-shortened day at Emirates Old Trafford in a game steadily heading towards a draw having already lost two days to the weather.
Steven Croft top-scored for the hosts with 45, while Matty Hurst, 20, made an assured unbeaten 35 on debut after openers Keaton Jennings and Luke Wells had posted 84 for the first wicket.
Stephen Mullaney and Asitha Fernando both claimed two wickets apiece for the visitors.
Elsewhere in Division Two, Harry Swindells kept alive Leicestershire’s promotion hopes, top-scoring with 73 in his first appearance of the year in the Foxes’ red-ball team, against Yorkshire at Grace Road.
Swindells, who scored an unbeaten 117 in the Metro Bank One-Day Cup final win over Hampshire, shared a 10th-wicket partnership of 93 with Will Davis (44 not out) as the hosts recovered from 140 for nine to reach 233, a first-innings lead of 78.
In reply, Yorkshire closed 35 runs in front on 113 for one with opener Adam Lyth 51 not out.
Brooke Guest marked his 100th appearance as a wicketkeeper for Derbyshire by taking seven catches against Sussex to equal the county’s record dismissals in an innings.
Sam Conners and Zak Chappell both took four wickets as Sussex were dismissed for 100 before the home side closed on 94 for one, with Luis Reece unbeaten on 50.