Combine beef, wine, pearl onions, carrots, garlic, thyme, and bay leaves in a nonreactive container. Cover and refrigerate 12 to 24 hours.
Strain the marinade, reserving the wine, beef, vegetables, and herbs separately. Pat the beef very dry and season lightly with salt and pepper.
Heat a 6-7 quart Dutch oven over medium-high heat. Add 2 tablespoons olive oil and sear the beef in batches until deeply browned. Transfer to a plate.
Add the mushrooms to the empty pot with no oil. Cook, stirring occasionally, until they release their liquid and take on light color. Transfer to a bowl.
Pat the marinated pearl onions dry. Add 2 tablespoons olive oil to the pot and sauté until lightly golden. Stir in the marinated garlic cloves for 1 more minute. Transfer to the bowl with the mushrooms.
Pour the reserved wine into a small saucepan. Bring to a boil, skim any foam, and reduce by about half until mellow and slightly syrupy.
Melt the butter in the Dutch oven over medium heat. Add the marinated carrots with the thyme and bay leaves and cook 2-3 minutes. Stir in the tomato paste for 1 minute, then sprinkle in the flour and stir 1-2 minutes until it looks like damp sand.
Slowly pour in the beef stock while stirring, then add the reduced wine and stir until glossy. Return the browned beef and juices to the pot, adding more stock only if needed to just cover the meat.
Bring to a gentle simmer, cover, and cook until the beef is very tender, 2½ to 3 hours on low heat on the stovetop or in a 325°F oven.
In the last 20-30 minutes, stir in the sautéed mushrooms, pearl onions, and garlic. Simmer until the vegetables are plump and the sauce coats the back of a spoon.
Discard thyme stems and bay leaves. Taste and adjust seasoning. Rest 10 minutes, then garnish with chopped parsley and serve.
Notes
Refrigerate leftovers up to 4 days once cooled; freezes well up to 3 months. Reheat gently on the stovetop, adding a splash of stock if the sauce has thickened. Beef short ribs can be substituted for chuck.