Heat olive oil in a large Dutch oven over medium-high heat.
Season the beef pieces with salt and pepper, then add them to the pot in batches, browning on all sides. Remove the beef and set aside.
In the same pot, add the diced onion, carrots, and celery. Sauté for about 5 minutes until the vegetables are softened.
Add the minced garlic and cook for an additional minute.
Stir in the tomato paste, then pour in the red wine, scraping up any browned bits from the bottom of the pot. Bring to a simmer and let it cook for about 5 minutes.
Return the browned beef to the pot along with the beef broth, thyme, rosemary, and bay leaves.
Bring the mixture to a boil, then reduce the heat to low. Cover and let it simmer for 2 to 3 hours, or until the beef is tender and easily shreds with a fork.
Once cooked, remove the bay leaves and adjust seasoning with salt and pepper as needed.
Serve hot over mashed potatoes or with crusty bread.