Heat the olive oil and butter in a Dutch oven over medium heat.
Add the onion, carrots, and celery. Cook for 8–10 minutes until softened.
Stir in the garlic and cook for 30 seconds.
Add the ground beef and pork, breaking the meat into small pieces. Cook until browned, about 8–10 minutes.
Stir in the tomato paste and cook for 2 minutes.
Pour in the red wine and simmer for 5 minutes, allowing it to reduce by half.
Add the crushed tomatoes, milk, beef stock, bay leaves, oregano, thyme, salt, black pepper, and red pepper flakes.
Bring the sauce to a gentle simmer.
Reduce the heat to low, partially cover, and cook for 2½–3 hours, stirring every 20–30 minutes. Add a splash of stock if the sauce becomes too thick.
Remove the bay leaves and taste, adjusting the seasoning if needed.
Cook the pasta in salted boiling water until al dente.
Toss the pasta with the Bolognese sauce.
Let the Bolognese rest for 15 minutes before serving to deepen the flavor.
Garnish with freshly grated Parmesan cheese and chopped parsley or basil.