Ingredients
Soffritto
- 2 tbsp extra-virgin olive oil
- 1 medium yellow onion, finely diced
- 1 medium carrot, finely diced
- 1 celery stalk, finely diced
- 4 cloves garlic, minced
Meat & Sauce
- 1 lb (450g) ground beef, 80/20 chuck for best flavor
- ½ cup whole milk
- ½ cup dry red wine (Chianti, Sangiovese, or Cabernet)
- 1 (28 oz / 800g) can crushed tomatoes, preferably San Marzano
- 2 tbsp tomato paste
- 1 tsp dried oregano
- 1 tsp fine sea salt, plus more to taste
- ½ tsp freshly ground black pepper
- ¼ tsp freshly grated nutmeg
- 1 bay leaf
Pasta & Finishing
- 1 lb (450g) dried spaghetti
- 1 tbsp kosher salt for the pasta water
- ½ cup pasta cooking water (reserved before draining)
- ½ cup freshly grated Parmigiano-Reggiano, plus more for serving
- 2 tbsp fresh basil or parsley, torn
Instructions
Heat 2 tbsp olive oil in a large heavy pot or Dutch oven over medium heat. Add the diced onion, carrot, and celery and cook 8–10 minutes, stirring often, until the vegetables are soft and the onion turns translucent — this soffritto is the flavor foundation, do not rush it.
Stir in the minced garlic and cook 30 seconds until fragrant. Add the ground beef, breaking it up with a wooden spoon. Cook 6–8 minutes until the beef is no longer pink and the moisture has evaporated, leaving the meat to brown.
Pour in ½ cup whole milk and simmer 2–3 minutes until almost fully absorbed. The milk tenderizes the meat and rounds out the acidity of the tomato — a hallmark of authentic Italian Bolognese.
Add ½ cup red wine and scrape any browned bits from the bottom of the pot. Simmer 2–3 minutes until the alcohol smell cooks off. Stir in the tomato paste and cook 1 minute to deepen its color.
Pour in the crushed tomatoes, oregano, salt, pepper, nutmeg, and bay leaf. Reduce heat to low, partially cover, and gently simmer 30–40 minutes, stirring every 10 minutes, until the sauce is thick and glossy. Discard the bay leaf and adjust salt.
Meanwhile, bring a large pot of water with 1 tbsp salt to a boil. Cook the spaghetti to al dente per package directions (usually 9–11 minutes). Reserve ½ cup pasta water, then drain. Toss the hot spaghetti directly into the sauce with the reserved water and ½ cup Parmigiano-Reggiano. Plate immediately and finish with torn basil and extra cheese.
Personal Tips
- Take 8–10 minutes for the soffritto. I used to rush it because the beef was waiting, and the sauce never had the same depth. Soft, sweet, almost-jammy onion-carrot-celery is the difference between weeknight and Sunday-dinner Bolognese.
- Yes, add the milk — even if it sounds weird. I skipped it the first time and the sauce was sharper, almost metallic from the canned tomatoes. The milk is a centuries-old Italian trick for tenderizing the meat and softening the acid; you cannot taste it once the sauce simmers down.
- Use 80/20 ground chuck, not lean. I tried 93/7 once for the protein numbers and the sauce was dry and chalky. The fat is the carrier for the soffritto and tomato — it is not negotiable for proper texture.
- Simmer at a bare bubble for at least 30 minutes. A rolling boil scorches the bottom and dries the meat. You want one or two lazy bubbles popping at a time, partially covered. If you have an extra 30 minutes, simmer 60 — the sauce only gets better.
- Always finish the pasta IN the sauce. Tossing drained spaghetti with a ladle of sauce on the plate gives you wet noodles and dry sauce. Tossing it in the pot with reserved pasta water and grated Parmigiano emulsifies into a glossy coat that clings to every strand. This single step separates real Italian pasta from a cafeteria plate.
Nutrition (per serving)
Nutrition (per serving): 1.5 cups sauced spaghetti | USDA FoodData Central, calculated estimates
Tags
Frequently Asked Questions
What is the difference between Bolognese and spaghetti sauce?
Can I make spaghetti Bolognese without wine?
How long should you simmer Bolognese sauce?
Can I freeze spaghetti Bolognese?
What pasta is best for Bolognese sauce?
Why do Italians put milk in Bolognese?
Dietary Restrictions
Allergens
Not Suitable For
- Vegans
- Vegetarians
- Lactose-intolerant (unless modified)
- Gluten-free dieters (unless modified)
Modifications
- Make it gluten-free by using a high-quality gluten-free spaghetti (corn-rice blends hold up best).
- Make it dairy-free by replacing whole milk with full-fat oat milk or unsweetened almond milk and skipping the Parmigiano (use 2 tbsp nutritional yeast for finishing).
- Make it vegetarian by replacing the ground beef with 1 lb cooked lentils or a 1-to-1 plant-based ground meat alternative; the soffritto and simmer time stay the same.