After two rain-hit days, Derbyshire added 75 runs to be bowled out for 275, visiting skipper Joe Leach taking 4-50.
Former captain Mitchell then made 120, followed by 150 from D'Oliveira to help Worcestershire close on 323-3.
That is a lead of 48 - and quick runs on day four could set up a victory.
Mitchell, who had starred on this ground on Tuesday night to help Worcestershire book a One-Day cup semi-final, passed the landmark of 10,000 first-class runs for the county when he had reached 87.
Earlier, Derbyshire had held up Worcestershire for 20 overs in the morning session to earn a second batting point.
That was largely due to a ninth-wicket stand of 45 between Tony Palladino (32) and Tom Taylor, who was caught behind to give Ed Barnard the first of two late victims and Ben Cox his 200th first-class catch.
When Worcestershire batted, Mitchell was first to reach his ton, just before tea, while D'Oliveira's was his first since his career-best double century against Glamorgan last May when he began the season with three tons in four games.
Derbyshire skipper Billy Godleman told BBC Radio Derby:
"The wicket definitely played slightly differently when they batted. There was less in it for our bowlers.
"We were disappointed with how we bowled with the new ball, although both openers played well.
"I imagine they will come out and play a few shots and then we will have an opportunity and challenge against their bowlers in the second innings but we will fight as hard as we can."
Worcestershire opener Brett D'Oliveira told BBC Hereford & Worcester:
"I'm really pleased for Mitch. It's been quite tough for us early season against the new ball on tasty pitches and for him to pass 10,000 runs is a hell of an achievement. He played a fantastic knock and helped me a lot.
"We are in a great position. We will try and kick on early and put them under pressure with the bat.
"We bat all the way down, which is a real strength for us so, if we can push on in the morning, the quicker we can get them in again."
Worcestershire's Brett D'Oliveira made his first hundred in over a year as he shared a 243-run opening stand with fellow centurion Daryl Mitchell against Derbyshire on day three at Derby.