Quick Recipe Version (TL;DR)
Quick Ingredients
- 2 tbsp extra-virgin olive oil
- 1 lb (450 g) ground beef, 80–85% lean
- 8 oz (225 g) ground pork
- 1 medium onion, 1 medium carrot, 2 ribs celery, finely diced
- 3 garlic cloves, minced
- 2 tbsp tomato paste
- 3/4 cup (180 ml) dry red wine
- 1 can (28 oz/800 g) crushed tomatoes
- 1 cup (240 ml) low-sodium beef stock
- 3/4 cup (180 ml) whole milk
- 2 bay leaves; 1 tsp dried thyme; pinch nutmeg; salt & pepper
- 1 lb (450 g) dried spaghetti
- 2 tbsp unsalted butter, cold
- 1 cup (60 g) finely grated Parmigiano Reggiano, plus extra
- 2 tbsp chopped parsley (optional)
Do This
- 1. Brown beef and pork in 2 tbsp oil over medium-high heat until deeply browned, 12–15 minutes; drain to leave 2 tbsp fat.
- 2. Soften onion, carrot, and celery with a pinch of salt over medium heat, 8 minutes; stir in garlic 1 minute.
- 3. Toast tomato paste and thyme 2 minutes; deglaze with red wine and reduce by half, 5 minutes.
- 4. Add tomatoes, stock, bay leaves, nutmeg, and browned meat; bring to a gentle simmer.
- 5. Simmer uncovered on low (bare bubbles) for 80 minutes, stirring occasionally.
- 6. Stir in milk; simmer 10 minutes more until sauce is thick and glossy. Season to taste.
- 7. Boil spaghetti in salted water until al dente; toss with 3½–4 cups ragù, 1 tbsp butter, and 1/2 cup Parm. Serve with more cheese.
Why You’ll Love This Recipe
- Slow-simmered ragù builds deep, cozy flavor with simple pantry staples.
- Beef-and-pork blend gives a rich, silky texture that hugs spaghetti.
- A splash of red wine and a little milk balance acidity for a rounded sauce.
- Finishing with butter and Parmigiano delivers a restaurant-quality gloss.
Grocery List
- Produce: 1 onion, 1 carrot, 2 ribs celery, 3 garlic cloves, fresh parsley (optional)
- Dairy: Whole milk, unsalted butter, Parmigiano Reggiano
- Pantry: Extra-virgin olive oil, crushed tomatoes (28 oz), tomato paste, low-sodium beef stock, dried thyme, bay leaves, nutmeg, kosher salt, black pepper, dried spaghetti
- Beverages (for cooking): Dry red wine
Full Ingredients
For the Ragù
- 2 tbsp extra-virgin olive oil
- 1 lb (450 g) ground beef, 80–85% lean
- 8 oz (225 g) ground pork
- 1 medium yellow onion, finely diced (about 1 cup/150 g)
- 1 medium carrot, finely diced (about 3/4 cup/100 g)
- 2 ribs celery, finely diced (about 3/4 cup/100 g)
- 3 garlic cloves, minced (about 1 tbsp/12 g)
- 2 tbsp (35 g) tomato paste
- 3/4 cup (180 ml) dry red wine
- 1 can (28 oz/800 g) crushed tomatoes
- 1 cup (240 ml) low-sodium beef stock
- 3/4 cup (180 ml) whole milk
- 2 bay leaves
- 1 tsp dried thyme (or 2 tsp fresh thyme leaves)
- 1/8 tsp ground nutmeg
- 1 tsp kosher salt, plus more to taste
- 1/2 tsp freshly ground black pepper
- Optional: 1 oz (30 g) Parmigiano rind for simmering
For the Pasta & Finish
- 1 lb (450 g) dried spaghetti
- 1 1/2 tbsp kosher salt (for pasta water)
- 2 tbsp unsalted butter, cold, divided
- 1 cup (60 g) finely grated Parmigiano Reggiano, plus more to serve
- 2 tbsp finely chopped flat-leaf parsley (optional garnish)

Step-by-Step Instructions
Step 1: Prep the soffritto and set up
Finely dice the onion, carrot, and celery so they virtually melt into the sauce. Mince the garlic. Measure out tomato paste, wine, tomatoes, stock, milk, and seasonings so everything is ready. Set a heavy 5–7 qt Dutch oven or deep sauté pan over medium-high heat.
Step 2: Brown the beef and pork
Heat 2 tbsp olive oil. Add the ground beef and pork in an even layer. Season with 1/2 tsp salt and 1/4 tsp pepper. Let the meat sear undisturbed for 4–5 minutes to develop a dark brown crust, then break into small pieces and continue cooking until deeply browned, 8–10 minutes more. If the pan gets crowded, brown in two batches. Spoon off excess fat, leaving about 2 tbsp in the pot. Transfer meat to a bowl.
Step 3: Soften the soffritto
Lower heat to medium. Add onion, carrot, and celery with a pinch of salt. Cook, stirring often, until soft and sweet but not browned, 8 minutes. Stir in garlic and cook 1 minute until fragrant.
Step 4: Build the base with tomato paste and wine
Add the tomato paste and thyme; cook 2 minutes, stirring, until the paste darkens slightly and sticks to the pot. Pour in the red wine and scrape up any browned bits. Simmer until reduced by roughly half and no longer sharp-smelling, about 5 minutes.
Step 5: Add tomatoes and simmer gently
Return the browned meat to the pot along with crushed tomatoes, beef stock, bay leaves, nutmeg, and Parmesan rind if using. Bring to a gentle simmer over medium heat, then reduce to low. Maintain a bare simmer (small lazy bubbles; about 195–203°F / 90–95°C) and cook uncovered for 80 minutes, stirring every 15 minutes. If the surface dries, add a splash of stock or water; if it’s too loose, keep simmering.
Step 6: Finish with milk and adjust seasoning
Stir in the whole milk and continue to simmer 10 minutes until the ragù is thick, glossy, and cohesive. Remove bay leaves (and rind). Taste and adjust salt and pepper. For extra silkiness, whisk in 1 tbsp of the cold butter off the heat.
Step 7: Cook spaghetti and marry with the sauce
Bring 4 qt (3.8 L) of water to a rolling boil (100°C/212°F). Add 1 1/2 tbsp kosher salt, then the spaghetti. Cook until al dente according to package time (usually 9–10 minutes). Reserve 1 cup (240 ml) pasta water and drain. In a wide pan, combine 3 1/2 to 4 cups of ragù with the drained spaghetti. Add 1/2 cup pasta water, the remaining 1 tbsp butter, and 1/2 cup (30 g) Parmigiano. Toss over medium heat for 60–90 seconds until the sauce emulsifies and clings. Plate and top with more Parmigiano and parsley if using.
Pro Tips
- Chop the soffritto very fine (or pulse in a food processor) so it melts seamlessly into the sauce.
- A wide, heavy pot maximizes browning and reduces more evenly for deeper flavor.
- Simmer uncovered to concentrate; add small splashes of water only if needed to maintain a gentle bubble.
- Milk softens acidity and rounds edges—do not skip it. Add near the end for a satiny finish.
- Toss pasta and sauce together off the heat with butter and cheese to achieve that glossy restaurant-style coating.
Variations
- Pancetta start: Render 3 oz (85 g) diced pancetta until crisp at the very beginning, then proceed. Use the rendered fat in place of some olive oil.
- Pressure cooker: After Step 4, add tomatoes and stock, then cook at High Pressure for 40 minutes; natural release 10 minutes. Finish with milk on sauté 5–10 minutes.
- Mushroom boost: Add 8 oz (225 g) finely chopped cremini mushrooms with the soffritto for an earthier, meatier profile.
Storage & Make-Ahead
The ragù improves overnight. Cool completely, then refrigerate up to 4 days or freeze up to 3 months. Reheat gently with a splash of water or milk until loose and glossy. Cook spaghetti fresh just before serving. If leftovers are already combined with pasta, refrigerate up to 2 days and rewarm with a bit of water to re-emulsify.
Nutrition (per serving)
Approximate: 700 kcal; 38 g fat; 54 g carbohydrates; 45 g protein; 4 g fiber; 1,050 mg sodium. Values will vary based on specific products and cheese amounts.


Leave a Reply