Worked out from this recipe's ingredients. If you're cooking for an allergy, always read the full ingredient list.
A restaurant-grade meat sauce built the old-fashioned way: a finely diced soffritto sweated in butter and oil, beef and pork browned hard, then a slow simmer with whole milk and dry white wine. The milk tenderises the meat and rounds out the acidity, the wine adds the savoury depth that makes a 90-minute sauce taste like it cooked all day. Finished off the heat with butter and Parmigiano and tossed with spaghetti in the pan so every strand is coated.
Ingredients
Soffritto
2 tbsp unsalted butter
2 tbsp extra-virgin olive oil
3 oz pancetta, finely chopped
1 medium yellow onion, finely diced (about 1 cup)
1 large carrot, finely diced (about 3/4 cup)
1 stalk celery, finely diced (about 1/2 cup)
3 cloves garlic, minced
The Ragù
1 lb ground beef chuck (80/20)
8 oz ground pork
1 1/2 tsp kosher salt, plus more to taste
1/2 tsp freshly ground black pepper
1 cup whole milk
1 cup dry white wine (Pinot Grigio or Sauvignon Blanc)
3 tbsp tomato paste
1 28-oz can San Marzano whole peeled tomatoes, crushed by hand
1 1/2 cups low-sodium chicken or beef broth
1 piece Parmigiano-Reggiano rind (optional but recommended)
1 pinch freshly grated nutmeg
1 bay leaf
To Serve
1 lb dried spaghetti
2 tbsp unsalted butter, cold
1 cup Parmigiano-Reggiano, finely grated, plus more for the table
2 tbsp flat-leaf parsley, chopped (optional)
Kosher salt for the pasta water
Instructions
Melt 2 tablespoons butter with the olive oil in a heavy 5- to 6-quart Dutch oven over medium heat. Add the pancetta and cook, stirring, for 5 to 6 minutes, until the fat has rendered and the pieces are lightly golden.
Add the onion, carrot, and celery with a pinch of salt. Cook over medium-low heat for 12 to 15 minutes, stirring often, until everything is very soft and sweet and the onion is translucent — do not let it brown. Stir in the garlic and cook 1 minute more.
Raise the heat to medium-high and add the ground beef and pork. Break the meat up with a wooden spoon and season with the 1 1/2 teaspoons salt and the black pepper. Cook for 10 to 12 minutes, stirring only every couple of minutes so the meat gets a chance to sit and brown, until the liquid has cooked off and you see real browning on the bottom of the pot.
Pour in the milk and reduce the heat to medium. Simmer, scraping the bottom, for 8 to 10 minutes, until the milk has almost completely evaporated and the meat looks glossy. This is the step that makes the sauce tender and mellow — don't rush it and don't skip it.
Add the white wine and let it bubble hard for 6 to 8 minutes, stirring, until the sharp alcohol smell is gone and the pan is nearly dry again.
Push the meat to one side, add the tomato paste to the bare spot, and toast it for 90 seconds until it darkens to brick red, then stir it through the meat.
Add the hand-crushed tomatoes and their juice, the broth, the Parmigiano rind, the nutmeg, and the bay leaf. Stir well and bring to a bare simmer.
Partially cover and cook at the laziest possible simmer — one bubble every second or two — for 60 minutes, stirring every 15 minutes and scraping the bottom. If it tightens up before the hour is out, add 1/4 cup water at a time. The finished sauce should be thick, deep russet, with a slick of orange fat on top. Fish out the rind and bay leaf and taste for salt.
When the ragù has about 15 minutes left, bring 5 quarts of water to a boil with 2 tablespoons kosher salt. Cook the spaghetti 1 minute short of the package's al dente time, then reserve 1 1/2 cups pasta water and drain.
Transfer 4 cups of the ragù to a wide skillet or back to the Dutch oven over medium heat. Add the drained spaghetti and 1/2 cup pasta water and toss vigorously with tongs for 1 to 2 minutes, until the sauce clings to the strands.
Pull the pan off the heat. Add the 2 tablespoons cold butter and the grated Parmigiano and toss hard until glossy and emulsified, loosening with more pasta water a splash at a time. Serve immediately in warm bowls with parsley and extra cheese.
Chef's tips
40-minute weeknight version: skip the pancetta, pulse the onion, carrot, and celery in a food processor so they soften in 6 minutes, and use all ground beef. Keep the milk step (cut to 1/2 cup, 5 minutes) and the wine (1/2 cup, 4 minutes) — those two are non-negotiable if you want it to taste slow-cooked. Use a 15-oz can of crushed tomatoes plus 1/2 cup broth and simmer 20 minutes.
Fine dice matters more than technique here. Every piece of soffritto should be under 1/8 inch so it melts into the sauce instead of showing up as chunks of carrot.
No white wine? Use dry vermouth. Red wine works but makes a heavier, darker sauce — traditional Bolognese uses white, and it's why the sauce tastes lighter and more savoury than a typical American meat sauce.
Never dump the pasta into the pot of sauce. Move sauce to a skillet and finish the pasta in it — this is the difference between coated spaghetti and spaghetti with a scoop on top.
The ragù is better on day two. Cool it fully and refrigerate up to 4 days or freeze up to 3 months; reheat with a splash of broth or water.
Nutrition (per serving, estimated)
847calories
43gprotein
75gcarbs
39gfat
Estimates only — values vary with brands and portions.
Made with Sprig
90-Minute Spaghetti Bolognese with Milk and White Wine was created in Sprig — the AI chef that turns any craving into a complete recipe, plans your week, and shops with one smart list.