Preheat oven to 300 degrees F. Season beef with 2 teaspoons salt and 1 teaspoon pepper. Working one at a time, dredge in flour.
Heat olive oil in a Dutch oven over medium high heat. Working in batches, add beef and cook until evenly browned, about 10-15 minutes; set aside. Drain excess fat, reserving 2 tablespoons in the Dutch oven.
Reduce heat to medium. Add onion, carrots and celery. Cook, stirring occasionally, until tender, about 5-7 minutes.
Stir in tomato paste and garlic until fragrant, about 1 minute.
Stir in wine, beef stock and balsamic vinegar, scraping any browned bits from the bottom of the Dutch oven. Stir in thyme, rosemary and bay leaf; season with salt and pepper, to taste.
Bring to a boil; reduce heat and simmer. Top with beef, bone-side up.
Place into oven, covered, and bake until beef is fork-tender, about 2 hours and 30 minutes. Set beef aside; keep warm.
Skim any remaining fat from surface and discard. Bring to a boil; reduce heat and simmer until reduced by half, about 10-15 minutes. Season with salt and pepper, to taste.
Serve beef with juices immediately with mashed potatoes, if desired.