Prepare the meatball mixture by combining the ground beef, fresh breadcrumbs, egg, milk, finely minced onion, garlic, chopped fresh parsley, salt, and black pepper in a large mixing bowl.
Gently mix the meatball ingredients with your hands or a spoon until everything is evenly combined, being careful not to overwork the mixture so the meatballs stay tender.
Shape the mixture into evenly sized meatballs, about 1 to 1 1/2 inches in diameter, and place them on a plate or tray.
Lightly dredge the formed meatballs in the 2 tablespoons of all-purpose flour, shaking off any excess flour so they are just lightly coated.
Heat 1 tablespoon of the olive oil in a large, heavy-bottomed skillet or Dutch oven over medium heat, then add half of the floured meatballs in a single layer.
Brown the meatballs on all sides for about 5 to 7 minutes, turning them gently, until they develop a deep golden crust but are not fully cooked through, then transfer them to a plate.
Add the remaining 1 tablespoon of olive oil to the pan if needed, then repeat the browning process with the remaining meatballs and transfer them to the same plate.
In the same pan, add the chopped bacon and cook over medium heat, stirring occasionally, until the bacon is browned and has rendered its fat.
Stir in the diced yellow onion and sliced carrots, cooking them in the bacon fat for 4 to 5 minutes until the onion softens and the carrots begin to take on a little color.
Add the sliced cremini or button mushrooms to the pan and cook for another 4 to 5 minutes, stirring occasionally, until the mushrooms release their moisture and start to brown.
Stir in the minced garlic for the sauce and the tomato paste, cooking for about 1 minute while stirring to coat the vegetables and lightly caramelize the tomato paste.
Pour in the dry red wine, scraping up any browned bits from the bottom of the pan with a wooden spoon, and let the wine simmer for 2 to 3 minutes to reduce slightly.
Add the beef broth, dried thyme, and bay leaf to the pan, stirring to combine the sauce base evenly with the vegetables.
Return the browned meatballs and any juices from the plate to the pan, nestling them into the sauce so they are mostly submerged.
Bring the sauce to a gentle simmer, then reduce the heat to low, cover the pan with a lid, and let the meatballs cook for about 20 minutes, stirring once or twice to prevent sticking.
After 20 minutes, remove the lid and continue to simmer the meatballs and sauce uncovered for another 5 to 10 minutes, allowing the sauce to reduce and thicken slightly.
In a small bowl, mash together the butter and 1 tablespoon of all-purpose flour to form a smooth paste, then stir this mixture into the simmering sauce to thicken it further.
Simmer the sauce for another 3 to 5 minutes after adding the butter and flour mixture, stirring gently, until the sauce becomes glossy and coats the meatballs.
Taste the sauce and season with the additional salt and black pepper for the sauce, adjusting to your preference.
Remove the bay leaf from the pan, sprinkle the meatballs and sauce with the chopped fresh parsley for garnish, and serve the beef bourguignon meatballs hot.