Heat 2 tablespoons of olive oil in a large pot over medium-high heat. Add beef cubes in batches and brown on all sides. Remove and set aside.
Add remaining 1 tablespoon olive oil to the pot. Sauté chopped onion until soft, about 5 minutes. Add minced garlic and cook for 1 minute until fragrant.
Stir in tomato paste and cook 2 minutes, then sprinkle flour over and stir to combine. Slowly add beef broth while stirring to prevent lumps.
Return browned beef to the pot. Add carrots, potatoes, thyme, rosemary, bay leaf, salt, and pepper.
Bring stew to a boil, then reduce heat to low. Cover and simmer for 2 hours or until beef is tender and vegetables are cooked through.
Remove bay leaf, adjust seasoning to taste, and serve hot with bread or over mashed potatoes.
Notes
This beef stew can be made a day ahead to allow flavors to meld beautifully. Freeze leftovers for up to 3 months.