Preheat an oven to 350 F.
Render the bacon. Add the chopped bacon to your dutch oven. Turn the heat to medium-low and cook the bacon, stirring occasionally, until it's browned and has released some of its fat. Use a slotted spoon to remove the bacon from the pan and transfer to a small bowl.
Sear the beef. Season the cubes of beef all over with salt and pepper. Increase the heat on the dutch oven to medium-high and sear the beef on all sides until browned. You may need to do this in batches. Remove the beef from the pan.
Saute the veggies. Decrease the heat to medium and add 2 tablespoons of the butter. Add the chopped onions and carrots to the pot and saute for 2-3 minutes, while stirring often. Add the chopped garlic and cook for another minute. Then, add the tomato paste and cook for 2-3 minutes, stirring often until the paste has darkened in color. Once the tomato paste is ready, sprinkle the flour over the top and stir well to incorporate. Cook for 2-3 minutes stirring constantly.
Add the wine, stock, and herbs. Add the wine to the pot and use a silicone spoon to work up any browned bits from the bottom of the pot. Add in the beef broth and bouillon and bring to a simmer. Add the beef and bacon back to the pot, along with the thyme and bay leaves. Cover the pot and transfer to the oven. Cook for 2 1/2 hours.
Add the mushrooms and pearl onions. Around the 2 1/2 hour mark, melt the remaining butter in a skillet over medium-high heat. Once the butter is hot and foamy, add the mushrooms and cook until browned. Add the pearl onions and cook for another 5 minutes, until browned. Season with salt and pepper.
Remove the beef bourguignon from the oven and add the mushrooms and onions. Return to the oven until the beef is very tender, another 45-60 minutes. Remove from the oven and leave covered for 30 minutes before serving.