Pat beef cubes dry and dredge lightly in flour.
- Heat 2 tbsp olive oil in a Dutch oven over medium-high heat. Brown beef in batches, then set aside.
- Add remaining 1 tbsp oil to the pot. Sauté onions, garlic, carrots, and celery for 5–7 minutes until softened.
- Deglaze with red wine (if using), scraping up browned bits from the bottom.
- Stir in tomato paste, canned tomatoes, rosemary, bay leaves, salt, and pepper.
- Add beef stock to just cover the mixture. Return beef to the pot and bring to a boil.
- Reduce heat to low, cover, and simmer for 2 to 2.5 hours until beef is fork-tender.
- Uncover in the last 20–30 minutes to allow sauce to thicken, if desired. Adjust seasoning.
- Serve hot with crusty bread, mashed potatoes, or creamy polenta.