Preheat the oven to 350 degrees F. Position a rack in the lower half of the oven.
Pat the chuck roast dry. Season the roast liberally on all sides with salt and pepper.
Set a large dutch oven over medium-high heat, adding 2 tablespoons of olive oil.
Add the beef to the hot oil and sear evenly on all sides, using tongs to turn the roast, about 5 minutes per side.
Transfer the roast to a plate.
Lower the heat to medium. Add the remaining olive oil to the heat.
Add the onion, garlic, chopped rosemary, and chopped thyme, cooking until the onions are translucent, about 6 minutes.
Add the wine and 1 cup of beef stock, scraping up the browned bits from the bottom of the pot with a wooden spoon.
Add the tomato paste, stirring to combine.
Transfer the roast back to the dutch oven.
Add enough of the remaining beef stock to come a little more than halfway up the roast.
Bring the sauce to a simmer.
Remove the sauce from the heat.
Cover the dutch oven top with a sheet of foil, then with the lid.
Transfer the pot to the oven and cook until the beef is tender, about 2 hours to 2 hours and 30 minutes. Check on it as it cooks to make sure there is enough cooking liquid and the liquid is simmering rather than boiling.
Place the carrots, celery, pearl onions, bay leaf, rosemary sprigs, and thyme springs around the roast in the dutch oven.
Cover the dutch oven again and cook until the vegetables are tender and a paring knife stuck into the meat slips in easily without resistance, about 20-30 minutes.
Transfer the roast to a plate and tent it with foil to rest for 15 minutes.
Slice the roast against the grain, then pull the beef into chunks.
Discard the bay leaf and the herb sprigs.
Arrange the beef and vegetables on a platter.
Serve.