Heat the olive oil in a large skillet over medium-high heat. Season the beef roast with salt and pepper, then sear it in the skillet for about 4-5 minutes on each side until browned. Remove the roast and set aside.
In the same skillet, add the chopped onion, garlic, carrots, and celery. Sauté for about 5 minutes until the vegetables are softened.
Stir in the diced tomatoes, beef broth, tomato paste, oregano, basil, and red pepper flakes (if using). Bring the mixture to a simmer.
Place the seared beef roast in a slow cooker and pour the vegetable and tomato mixture over the top. If using, add the red wine.
Cover and cook on low for 8 hours or on high for 4 hours, until the beef is tender and easily shreds with a fork.
Once cooked, remove the roast from the slow cooker and let it rest for a few minutes. Shred the beef with two forks and return it to the sauce.
Serve hot, garnished with fresh parsley.