Heat olive oil in a large Dutch oven over medium-high heat.
Season beef with salt and pepper, then toss with flour to coat.
Sear the beef in batches until browned on all sides, then transfer to a plate.
Add chopped onion to the pot and sauté until translucent, about 5 minutes.
Stir in garlic and tomato paste, cooking for 1-2 minutes until fragrant.
Pour in Guinness and scrape up browned bits from the bottom of the pot.
Return beef to the pot along with beef broth, carrots, celery, thyme, bay leaves, and Worcestershire sauce.
Bring to a boil, then reduce heat to low, cover, and simmer for 2 to 2½ hours until beef is tender.
Discard thyme sprigs and bay leaves before serving.