I build this classic Bolognese the traditional way—slowly sweating a soffritto, browning a mix of meats, and simmering low and gentle until the sauce turns silky, deeply savory, and clings to wide ribbons of pasta.
Why You’ll Love This Recipe
I follow time-honored technique for real depth of flavor, I use milk to mellow the tomatoes and enrich the sauce, and I simmer patiently so the ragù becomes glossy and concentrated. I finish with butter and pasta water for that restaurant-style sheen, and I toss with tagliatelle so every strand carries sauce.
Ingredients
(Here’s a tip: Check out the full list of ingredients and measurements in the recipe card below.)
-
Olive oil, 2 tablespoons
-
Unsalted butter, 2 tablespoons (divided)
-
Yellow onion, 1 medium, finely diced
-
Carrot, 1 small, finely diced
-
Celery stalk, 1 small, finely diced
-
Pancetta or bacon, 60 g (2 oz), finely chopped (optional but traditional)
-
Ground beef (80–90% lean), 400 g (14 oz)
-
Ground pork, 200 g (7 oz)
-
Tomato paste, 2 tablespoons
-
Dry white wine, 1/2 cup (120 ml)
-
Whole milk, 1 cup (240 ml), warmed
-
Passata or crushed tomatoes, 2 cups (480 ml)
-
Beef or chicken stock (low sodium), 1 cup (240 ml), plus more as needed
-
Bay leaf, 1
-
Pinch of ground nutmeg
-
Fine sea salt and black pepper, to taste
-
Parmesan rind (optional), 1 piece
-
Tagliatelle or pappardelle, 500 g (1 lb)
-
Freshly grated Parmigiano-Reggiano, for serving
Directions
-
Make the soffritto: I warm olive oil and 1 tablespoon butter in a heavy pot over medium heat. I add onion, carrot, and celery with a pinch of salt and cook gently, stirring, until soft and sweet but not browned, about 8–10 minutes.
-
Render and brown: I stir in pancetta and cook 3–4 minutes. I add the beef and pork, break it up with a spoon, and cook until no longer pink and lightly browned, about 8–10 minutes. I season with salt and pepper.
-
Build flavor: I push the meat to one side and add tomato paste to the cleared spot. I cook the paste 2 minutes to caramelize, then stir it through.
-
Deglaze: I pour in the wine and simmer, scraping up browned bits, until mostly evaporated, 2–3 minutes.
-
Add dairy and tomatoes: I stir in warm milk and simmer 3–4 minutes to reduce slightly. I add passata, stock, bay leaf, nutmeg, and the Parmesan rind if I’m using it.
-
Low and slow: I bring the pot to a bare simmer, then lower the heat so the surface just blips. I cook uncovered 1 1/2 to 2 1/2 hours, stirring occasionally and adding small splashes of stock if the sauce gets too tight. I want a thick, glossy ragù.
-
Finish the sauce: I remove the bay leaf (and rind). I stir in the remaining 1 tablespoon butter, taste, and adjust salt and pepper.
-
Cook pasta and marry: I boil tagliatelle in well-salted water until al dente. I transfer pasta to the pot with ragù with a ladle of pasta water and toss vigorously over medium heat until the sauce coats and clings.
-
Serve: I plate with a shower of Parmigiano-Reggiano.
Servings and timing
I get about 6 servings (enough sauce for 500 g/1 lb pasta). I spend 20 minutes on prep, 20 minutes browning and building, and 1 1/2 to 2 1/2 hours of gentle simmering, for a total of roughly 2 to 3 hours.
Variations
-
All-beef: I use 600 g (about 1 1/3 lb) ground beef and skip pork for a cleaner flavor.
-
Mushroom boost: I finely chop 200 g (7 oz) cremini or porcini and brown them with the meat for extra savoriness.
-
Lighter turkey: I swap in ground turkey thigh, add an extra tablespoon olive oil, and don’t skimp on the simmer for richness.
-
Pressure cooker: I follow steps through deglazing, then cook at high pressure for 30 minutes; I reduce on sauté after if needed.
-
Dairy-free: I replace milk with unsweetened oat milk or stock and add a tablespoon olive oil at the end for body.
storage/reheating
I chill leftovers quickly and keep the sauce (without pasta) in an airtight container up to 4 days in the fridge or 3 months in the freezer. To reheat, I warm gently in a saucepan with a splash of water or stock until loosened and steamy; I toss with freshly cooked pasta and a little pasta water to emulsify. If I’ve already mixed sauce and pasta, I reheat in a skillet over medium with a splash of water, tossing until hot.
FAQs
What makes this different from basic “meat sauce”?
I build Bolognese with soffritto, wine, milk, and a long, slow simmer for a silky texture and mellow, layered flavor—more savory and less tomato-forward than a quick meat sauce.
Why do I add milk to Bolognese?
I add milk to soften the acidity of the tomatoes and to tenderize the meat; it also gives the sauce a velvety finish after a long simmer.
Can I skip the wine?
I can; I replace it with extra stock plus 1 teaspoon red or white wine vinegar for brightness. The flavor will be a bit different but still delicious.
What pasta shape works best?
I reach for tagliatelle, pappardelle, or fettuccine—the broad surfaces catch the thick ragù. If I only have spaghetti, I still make it work.
How thick should the sauce be?
I aim for thick and spoon-coating. If it’s too loose, I simmer uncovered a bit longer; if it tightens too much, I loosen with stock or pasta water.
Conclusion
I rely on classic technique—patient browning, gentle simmering, and a final toss with pasta water—to create a richly flavored, glossy Bolognese that feels like it came from a trattoria. With a few pantry staples and time on the stove, I get a sauce that’s comforting, elegant, and endlessly satisfying.

Pasta Bolognese (Classic Italian)
5 Stars 4 Stars 3 Stars 2 Stars 1 Star
No reviews
- Author: Evee
- Total Time: 2 to 3 hours
- Yield: 6 servings
- Diet: Halal
Description
A traditional Italian Bolognese sauce simmered low and slow for deep, savory flavor. Built from a classic soffritto base, enriched with milk and wine, and finished with butter and pasta water for a glossy texture that clings perfectly to tagliatelle.
Ingredients
2 tablespoons olive oil
2 tablespoons unsalted butter (divided)
1 medium yellow onion, finely diced
1 small carrot, finely diced
1 small celery stalk, finely diced
60 g (2 oz) pancetta or bacon, finely chopped (optional)
400 g (14 oz) ground beef (80–90% lean)
200 g (7 oz) ground pork
2 tablespoons tomato paste
1/2 cup (120 ml) dry white wine
1 cup (240 ml) whole milk, warmed
2 cups (480 ml) passata or crushed tomatoes
1 cup (240 ml) low-sodium beef or chicken stock (plus more as needed)
1 bay leaf
Pinch of ground nutmeg
Fine sea salt and black pepper, to taste
1 Parmesan rind (optional)
500 g (1 lb) tagliatelle or pappardelle
Freshly grated Parmigiano-Reggiano, for serving
Instructions
- Heat olive oil and 1 tablespoon butter in a large pot over medium heat. Add onion, carrot, and celery with a pinch of salt. Cook, stirring occasionally, until soft and translucent, 8–10 minutes.
- Stir in pancetta (if using) and cook 3–4 minutes.
- Add ground beef and pork. Break up with a spoon and cook until browned and no longer pink, 8–10 minutes. Season with salt and pepper.
- Push meat to one side, add tomato paste to the empty spot, and cook for 2 minutes to caramelize. Stir through the meat.
- Deglaze with white wine, scraping up any bits, and simmer until mostly evaporated, 2–3 minutes.
- Stir in warm milk and simmer 3–4 minutes. Add passata, stock, bay leaf, nutmeg, and Parmesan rind (if using).
- Bring to a bare simmer. Reduce heat and cook uncovered for 1 1/2 to 2 1/2 hours, stirring occasionally. Add splashes of stock if it becomes too thick.
- Remove bay leaf and Parmesan rind. Stir in remaining 1 tablespoon butter. Taste and adjust seasoning.
- Cook pasta in well-salted water until al dente. Transfer to sauce with a ladle of pasta water. Toss over medium heat until the sauce clings to the pasta.
- Serve topped with grated Parmigiano-Reggiano.
Notes
For all-beef Bolognese, use 600 g (1 1/3 lb) ground beef and skip the pork.
Add chopped mushrooms with the meat for extra umami.
Use ground turkey thigh and a bit more olive oil for a lighter version.
Oat milk or stock can replace dairy for a dairy-free option.
A pressure cooker can speed up simmering—cook at high pressure for 30 minutes, then reduce sauce as needed.
- Prep Time: 20 minutes
- Cook Time: 1.5 to 2.5 hours
- Category: Main Course
- Method: Simmering
- Cuisine: Italian
Nutrition
- Serving Size: 1/6 of recipe with pasta
- Calories: 580
- Sugar: 7g
- Sodium: 480mg
- Fat: 28g
- Saturated Fat: 11g
- Unsaturated Fat: 14g
- Trans Fat: 0g
- Carbohydrates: 52g
- Fiber: 4g
- Protein: 32g
- Cholesterol: 90mg