The 23-year-old opening batsman/leg spinner follows the lead of Joe Clarke, Ed Barnard, Joe Leach, Tom Fell and Ross Whiteley in extending his deal.
"We have a great bunch of lads, it's the city where I'm from and it's the club I love playing for," he said.
"I'm very passionate about the club and want to win games of cricket for Worcestershire."
D'Oliveira is the third generation of his family to play for the county, following in the footsteps of his late grandfather, former England all-rounder Basil, and his late father Damian, who served the county as player and coach.
He made his limited-overs debut against Yorkshire in 2011 and his first-class debut against Warwickshire a year later.
D'Oliveira impressed with the ball in Worcestershire's run to the T20 Blast quarter-finals, taking nine wickets, proving their most economical bowler in the competition.
His five Championship appearances in 2015 have all come since the start of July.

Police in Cornwall were called to Great Western Beach, Newquay at 17:45 BST on Tuesday.
A 38-year-old man was arrested and is in police custody.
The car had to be towed on to a different beach once the tide was out in order to remove it, an eyewitness said.
More on the car in the sea story, and other news
Jamie Clogg from Towan Motors came to help the beach owners remove the car.
He had to wait until the tide was out, after 8pm, to tow the car along the sand to Towan Beach - a journey of just under half a mile.
"The car would be stuck otherwise so I went down to help them. There were police everywhere.
"When the tide goes out there's a hard bit of ground which we could drive across - you'd never drive across the dry sand."
Worcestershire all-rounder Brett D'Oliveira has signed a new three-year deal, tying him to New Road until 2018.
[NEXT_CONCEPT]
A man has been arrested on suspicion of drinking and driving after a car was driven into the sea.